《IBMPC汇编语言程序设计》(第版)第章习题解答及答案.doc
文本预览下载声明
第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为正,向前跳,即向地址增加的
显示全部