- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第3章 习题参考答案
1 分别指出下列指令中的源操作数和目的操作数的寻址方式。
答: 源操作数 目的操作数
(1)MOVAX,[SI]
寄存器寻址
寄存器间接寻址
(2)MOVDI,100
寄存器寻址
立即寻址
(3)MOV[BX],AL
寄存器间接
寄存器
(4)MOV[BX][SI],CX
基址+变址
寄存器
ADDDX,106H[SI]
PUSHAX
寄存器寄存器
变址
(7)ADDDS:[BP],AX
带段超越寄存器间接寻址
寄存器
(8)ORAX,DX
寄存器
寄存器
2.设寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)
=0A0H,(BX)=100H,(BP)=10H,数据段中变量VAL的偏移地址为50H。试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?
答: 操作数的寻址方式 存储器操作数PA
MOVAX,[100H]
MOVCX,ES:[BX]
直接寻址 20100H
带段超越的寄存器间接寻址 32100H
MOVDX,[BX][SI]
MOVAX,VAL[SI]
基址+变址寻址
变址寻址
200F0H
200F0H
(5)MOVBX,1234[BX]
基址寻址
205D2H
(6)MOVAX,[BP]
寄存器间接寻址
15010H
判断下列指令有误错误,若有,则改之。
答:
PUSHCL 有错,对堆栈操作数总是16位的。改为:PHSH CX
ADCAX,0ABH 无,只是CF的值是不确定的(0或1)
OUT3EBH,AX 有,输出设备的端口地址若超过8位,应使用DX
间接寻址。改为:MOVDX, 3EBHOUTDX,AX
MULAL,CL有错。乘法指令中有AX或AL寄存器是隐含的。改为:
MULCL
(5)MUL AX,25 有错。乘法指令中不能用立即数。改为:
MOVBX,25MULBX
ROLDX,5 有错。移位的次数由CL寄存器控制。改为:
MOVCL,5ROLDX,CL
CALLFARSUM 无错。
POPFR 有错。寄存器FR是不能单独操作的,改为:POPF
MOV234H,BX 有错。立即数不能作为目的操作数。改为:
MOVBX,234H
INC[SI]有错。该错误主要是针对汇编程序的。由于翻译这条指令时,不知是8位的还是16位的目标码,故要加入宏汇编的综合运算符PTR。改为:INCBYTEPTR[SI]
ADD[BX],456H有错。改为:ADDWORDPTR[BX],456H
INTO有错。这条指令是没有的
DIVAX,BX有错。除法指令中,AX或DX.AX作为被除数是隐含的。改为:DIVBX
DEC[BP] 有错。与题(10)有类似的错误。改为:
DECWORDPTR[BP]
XLATBXXLAT的操作数是隐含的,它是一条复合指令,在执行该指令之前,将BX指向表的手地址,AL中存入被转换的码,然后执行该指令。
ADDCX+1 有错。操作数CX+1是完全错误的。改为:INCCX
DAAAX有错。调整指令是专门对AL寄存器的内容进行调整的,故指令中操作数是隐含的。改为:DAA
4 选择题
带符号数-86所表示的二进制数值是(A)
A. B.C. D.
执行MOVDL,2AH和SHRDL,1两条指令后,DL寄存器与CF标志分别为(D)
A.DLCF=1
B.DLCF=0
C.DLCF=1
D.DLCF=1
可将AX寄存器中D0,D5,D8和D11位求反,其余位不变的指令是(C)
AND AX,921H B.OR AX,910H
C.XOR AX,0921H D.XOR AX,0110H
某存储单元物理地址为3B4FH,其段地址和偏移地址可选为(B)
3B4FH和104EH B.3B40H和00FEH
C.2A00H和114FEH D.3B4FH和0H
(5)两个8位二进制数及做“异或”操作后,寄存器FR的下面3个状态标志分别是(C)
A.PF=1SF=1ZF=0 B.PF=0SF=1ZF=1
C.PF=0SF=1ZF=0 D.PF=1SF=1ZF=1
(6)当执行存储器写指令时,如MOV[S
文档评论(0)