微机系统(汇编)习题求解(急哦~急求答案!!)

1.在实模式工作方式下,已知(DS)=2000H,(ES)=1000H,(SS)=4000H,SI=600H,(BX)=400H,(BP)=300H,请写出下列指令执行源... 1.在实模式工作方式下,已知(DS)=2000H,(ES)=1000H,(SS)=4000H,SI=600H,(BX)=400H ,(BP)=300H,请写出下列指令执行源操作数和目操作数的寻址方式及物理地址。 MOV AL , [4000H] MOV [SI+BX],AL MOV ES : [BP+2],AL MOV AX , ES:[SX+SI] MOV AX , [BX+SI] 求解物理地址时请写详细一点 2.在实模式工作方式下,已知(DS)=2000H,(ES)=1000H,(SI)=002H,(BX)=100H,(20100H)=55H,(20101H)=42H,(20102H)=24H(20103H)=25H,(20104H)=77H,(10100H)=22H,(10101H)=33H,(10102H)=11H,(10103H)=44H,(10104H)=88H,(10105H)=99H,请写出下列指令执行后的目操作数中的内容。 MOV AX , [BX] ADD AX,ES:[BX] MOV CX,[BX+SI] ADD AX,CX MOV CX,ES:[BX+SI * 2] ADD,AX,CX 展开
 我来答
疑一妞1188
2014-10-25 · 超过67用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:161万
展开全部
第一题: MOV AL , [4000H] ;直接寻址 计算公式:段寄存器*16+偏移地址,段寄存器隐含为DS 则有:物理地址=2000*16+4000=24000H MOV [SI+BX],AL ;基址变址寻址 计算公式:DS*16+(SI+BX),BX隐含的段寄存器为DS,若是BP,则隐含段寄存器为SS 则有:物理地址=2000*16+600+400=20A00H MOV ES : [BP+2],AL ;带段超越前缀的基址寻址(寄存器相对寻址) 计算公式:ES*16+BP+偏移量 则有:物理地址=1000*16+300+2=10302H MOV AX , ES:[SX+SI] ;带段超越前缀的基址变址寻址 计算公式:ES*16+(...楼主这里写错了吧,没有SX这个寄存器),但计算公式和上面的基址变址寻址一样,只是把DS换成ES。 MOV AX , [BX+SI] ;基址变址寻址 计算公式同上面的基址变址寻址,物理地址计算方法也一样,限于篇幅,这里就不多写了。 第二题: 实际上也就是一些寻址方式的应用 MOV AX , [BX] ;寄存器间接寻址 AX的内容为BX寻址后得到的物理地址开始2个字节的存储单元的内容,数据从低到高存放,地地址内的数据存放在AX的低8位,高地址内的数据存放在AX的高8位 物理地址:DS*16+BX内的数据=20100H AX内容=4255H ADD AX,ES:[BX] ;带段超越前缀的寄存器间接寻址 段超越前缀和普通寄存器间接寻址不同之处在于段寄存器采用指定段作为基址 物理地址:ES*16+BX内的数据=10100H 于是,AX=4255H(上一个指令得到的)+3322H=7577H MOV CX,[BX+SI] ;基址变址寻址 物理地址:DS*16+(BX+SI)=20102H, 于是,CX内容为20102H开始的连续2个字节单元内容,CX=2524H ADD AX,CX ;寄存器寻址 直接将AX和CX内的数据相加,结果保存在AX中, 则,AX内容为:0ABABH MOV CX,ES:[BX+SI * 2] ;带段超越前缀的基址比例变址寻址,这个是80386以后出现的寻址方式,只适合32位处理器 物理地址:ES*16+(BX+SI内容乘以2)=10104H 则,CX值为10104H开头的两个字节存储单元的内容,CX=9988H ADD,AX,CX ;同上,寄存器寻址 用当前的AX内的值+当前CX内的值=ABABH+9988H,显然这个不带进位的加法指令将产生溢出。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式