- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《IBM-PC匯编语言程序设计》(第2版)第3章习题解答及答案
第3章习题答案
3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?
(1)立即寻址; 答案:无。 如:MOV AX,5
(2)直接寻址; 答案:7237H 如:MOV AX,[7237H]
(3)使用BX的寄存器寻址; 答案:无。因不涉及内存 如:MOV AX,BX
(4)使用BX的间接寻址; 答案:637DH 如:MOV AX,[BX]
(5)使用BX的寄存器相对寻址 答案:D5B4H 如:MOV AX,[BX+ 7237H]
(6)基址变址寻址 答案:8E18H 如:MOV AX,[BX][SI]
(7)相对基址变址寻址; 答案:无效,溢出 如:MOV AX,[BX][SI] + 7237H
3.2 试根据以下要求,写出相应的汇编语言指令:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中; 答案:ADD DX,BX
(2) 用寄存器BX 和SI 的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中; 答案:ADD AL,[BX][SI]
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回到存储器中; 答案:ADD [BX+0B2H],CX
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回到该存储单元中; 答案:ADD WORD PTR [0524H],2A59H
(5)把数0B5H与(AL)相加,并把结果送回AL中。答案:ADD AL, 0B5H
3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:
(1) 寄存器间接寻址
答案:LEA BX, BLOCK
ADD BX, 5*2
MOV DX, [BX]
(2) 寄存器相对寻址
答案:LEA BX, BLOCK
MOV DX, [BX+5*2]
(3) 基址变址寻址
答案:LEA BX, BLOCK
MOV SI,5*2
MOV DX, [BX][SI]
3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56,
(20103)=78H,(21200)=2AH,(21201)=4CH, (21202)=B7H, (21203)=65H,试说明下列各条指令执行完后AX寄存器的内容。
(1)MOV AX,1200H 答案:1200H
(2)MOV AX,BX 答案:0100H
(3)MOV AX,[1200H] 答案:4C2AH
(4)MOV AX,[BX] 答案:3412H
(5) MOV AX,1100H[BX] 答案:4C2AH
(6) MOV AX,[BX][SI] 答案:7856H
(7) MOV AX,1100H[BX][SI] 答案:65B7H
3.5 给定(IP)=2BC7H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,
(224A0)=0600H, (275B9)=098AH,试为以下转移指令找出转移的偏移地址。
(1)段内直接寻址; 答案:7CD9H 如:JMP 7CD9H
(2)使用BX及寄存器间接寻址方式的段内间接寻址; 答案:600H 如JMP [BX]
(3)使用BX及寄存器相对寻址方式的段内间接寻址; 答案:98AH 如JMP [BX+5119H]
3.6 当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画图表示出来。
答案:LES BX,[2000]
MOV AX,ES:[BX]
3.7 在0624单元内有一条二字节JMP SHORT OBJ指令,如其中的位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址的值是多少?
答案:(1) 064DH (因为0624处有两字节指令,因此下一条指令在0626H处,而0626H+27H=064DH)
(2)0691H (因为0624处有两字节指令,因此下一条指令在0626H处,而0626H+6BH =0691H)
(3)05ECH (因为0624处有两字节指令,因此下一条指令在0626H处,而近跳转时,位移0H~7FH为正,向前跳,即向地址增加的方向
文档评论(0)