习题1——指令系统 参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《汇编语言》习题1——指令系统参考答案

习题1-1 在8086CPU中,如果SS的内容设置为1A4BH,堆栈的长度为100H字节,问SP寄存器的初始化值为多少?SP初始指向哪个主存物理地址?

答:SP寄存器的初始化值为:100H

SP初始指向的主存物理地址是:1A5B0H

习题1-2 分别说明下述8086指令中的源操作数和目的操作数的寻址方式。

指令目的操作数源操作数

(1) MOV ES, AX 寄存器寻址寄存器寻址

(2) ADD DS:[12H],AL 直接寻址寄存器寻址

(3) SUB BX,1200H 寄存器寻址立即寻址

(4) SHR AX,1 寄存器寻址立即寻址

(5) AND -28H[BP][DI], AX 基址变址寻址寄存器寻址

(6) MOV CX,LAB1[BX] 寄存器寻址基址/变址寻址

(7) SBB AX, [BX] 寄存器寻址寄存器间接寻址

(8) OR DX,-360H[SI] 寄存器寻址基址/变址寻址

(9) ADC VAR1,CX 直接寻址寄存器寻址

(10) XOR [DI],AX 寄存器间接寻址寄存器寻址

习题1-3分别说明下述指令语句的语法正确与否,如果有错,说明其错误。

指令正误

(1)MOV DS, 1234H 错误,立即数不能直接传送到段寄存器中

(2)ADD AH,AL 正确

(3)SUB CS,AX 错误,不能对CS直接操作

(4)MOV BX,[BX][SI] 正确

(5)ADC VAR1,[BP][DI] 错误,两个操作数不能同时都在存储器中

(6) SBB [BX][BP],AX 错误, 基址变址寻址方式中不能两个寄存器都是基址寄存器

(7)PUSH 5678H 错误,立即数不能作为源操作数直接压入堆栈

(8)SHL [BP][SI],CL 错误,目的操作数没有明确指明是字还是字节

(9)ROR AX,2 错误,移位次数大于1时,需将其提前存入CL中

(10)NEG AX,BX 错误,操作数个数错误

(11)LEA CS,AX 错误,目的操作数只能是16位通用寄存器

(12)MOV AL,BX 错误, 操作数位数不一致

(13)ADD DS:200H,AX 正确

(14)AND [BX][BP],AH 错误, 基址变址寻址方式中不能两个寄存器都

是基址寄存器

(15)OR BH,-16H[BP] 正确

(16)CLC AX 错误,操作数个数错误

(17)MUL AX,BX 错误,操作数个数错误

(18)DIV 12H 错误,源操作数不能是立即数

习题1-4 在8086中,如果(DS)=1A26H,(SS)=20B0H,(BX)=1200H,(SI)=0034H, (BP)=5700H(1B484H)=1234H,(26200H)=5678H,给出下面各指令或指令组执行后相应寄存器/存储单元的结果。

(1) MOV AL,BH

答:(AL) = 12H

(2) MOV CX,-10H[BX][SI]

MOV DX, [BP]

答:

DS:1A260H

BX:1200H SS:20B00H

SI:0034H BP:5700H

-10H ---------------------

--------------------- 26200H

1B484H

所以,(CX)= 1234H,(DX)= 5678H

(3)LEA SI,34H[BX]

MOV [SI],8765H

答:1200H+34H=1234H, (SI)=1234H

(DS)+(SI)=1A260H+1234H=1B494H

所以,(SI)=1234H, (1B494H)=8765H

习题1-5 在8086中,假设(SS)=1F00H,(SP)=1120H,(BX)=11ABH。在执行下面指令后,堆栈中栈顶的4个字节内容分别是什么?栈顶单元的偏移量是多少?PUSH BX

ADD BX,1200H

PUSH BX

答:(1)栈顶的4个字节内容是:11AB23ABH

(2)栈顶单元的偏移量是:111CH

相关文档
最新文档