第5章作业答案(2)

2019-08-31 00:02

(1)MOV AL,[0200H] 执行该程序片段后,(AL)=?

答:源操作数地址为(DS)*16+0200H=10000H+0200H=10200H, 因此执行该程序片段后,(AL)=70H (逆序存放,低地址对应低数据位)

(2)MOV BP,0871H MOV BL,[BP] 执行该程序片段后,(BL)=?

答:第二条指令的源操作数地址为(SS)*16+(BP)=20871H,执行该程序片段后,(BL)=02H (逆序存放,高地址对应高数据位)

(3)LEA SI,[0200H] 执行该程序片段后,(SI)=?

答:LEA指令将源操作数的EA传送到目的操作数保存,(SI)=0200H

(4)MOV SI,[0200H] LEA SI,[SI] 执行该程序片段后,(SI)=?

答:MOV指令中源操作数地址为(DS)*16+0200H=10200H,执行后(SI)=0870H,第二条指令源操作数的EA直接为(SI)=0870H,执行后仍有(SI)=0870H。

(5)LDS BX,[0200H] MOV AL,[BX]0002H 执行该程序片段后,(AL)=?

答:LDS指令中源操作数地址为(DS)*16+0200H=10200H,将(10200H)字单元内容传

递到BX保存,将(10202H)字单元内容传递到DS保存,执行后(BX)=0870H,(DS)=2000H;MOV指令中源操作数地址为(DS)*16+(BX)+0002H=20872H,执行后(AL)=05H。

8.按要求分析下面程序片段的执行结果。 MOV AX,651CH SHL AL,1 RCL AH,1

执行该程序片段后,(AX)=?,该程序片段的功能是什么?如果将(AX)解释为无符号数,那么运算是否溢出?为什么?如果将(AX)解释为补码,运算是否溢出?为什么?SHL与SAL指令间有什么关联和区别?

答:执行该程序片段后,(AX)=0CA38H,该程序片段的功能为将AX中的16位编码左移1位,等价于乘以2(也可理解为自加一次)。如果将(AX)解释为无符号数,那么运算没有溢出,因为最后一次移位操作后,最高移出位为0,即CF=0(自加完成后最高位无进位);如果将(AX)解释为补码,运算溢出,因为移位前后(AX)的最高位发生了变化(由0变为1),符号位在运算中丢失,可以理解为自加运算结果超出了16位补码表示范围。

SHL与SAL指令本质上对应同一条机器指令,在功能上并无区别,因为无符号数与补码的左移操作是完全相同的,但为了指令系统设计的规整性,在汇编指令中将它们区分开,SHL针对无符号数左移,SAL针对补码左移。

9.按要求分析下面程序片段的执行结果。 MOV AL,35H AND AL,0FH

执行该程序片段后,(AL)=?CF、OF、AF、ZF、SF、PF标志取值是什么?该程序片段的功能是什么?

答:执行该程序片段后,(AL)=05H,CF=0;OF=0;AF不确定;ZF=0;SF=0;PF=1;该程序片段的功能是将(AL)中的低4位数据分离出来,屏蔽高4位。

10.假设一个48位的补码按照由低位到高位的顺序保存在字类型的内存单元VA1、VA1+2、VA1+4中,试按下列要求完成程序片段设计。(红字部分请在教材中纠正)

(1)设计程序片段,实现将该48位补码除以4的功能,运算结果仍然保存在原内存单元中。 解:

SAR VA1+4, 1 RCR VA1+2, 1 RCR VA1, 1 SAR VA1+4, 1 RCR VA1+2, 1 RCR VA1, 1

(2)设计程序片段,求该48位补码的相反数补码,运算结果仍然保存在原内存单元中。 解: NOT VA1 NOT VA1+2 NOT VA1+4 ADD VA1, 1 ADC VA1+2, 0 ADC VA1+4, 0

11.试说明如何使用CMP指令提供的标志位判断两个补码操作数大小关系的原理。

答:请参考本章关于比较指令(CMP)中的详细介绍加以说明。

12.假设(SP)=0060H,执行两次PUSH指令后,(SP)=?假设(SP)=0038H,执行三次POP指令后,(SP)=?

答:执行两次PUSH指令后,(SP)= 005CH;执行三次POP指令后(SP)

=0038H+0002H*3=0038H+0006H=003EH

13.按要求分析下面程序片段的执行结果。 MOV AL,01H NEG AL INC AL

执行该程序片段后(AL)=?,CF、OF标志的状态是什么?

答:执行该程序片段后(AL)=0,CF=1,注意,这是受NEG指令影响的结果,INC指令不影响CF标志;OF=0,加法运算并无溢出,因为0FFH为-1的补码,加1后等于0是正确的。

14.按要求分析下面程序片段的执行结果。 MOV BL,51H AND BL,0FEH XOR BL,50H DEC BL

执行该程序片段后(BL)=?,CF、OF标志的状态是什么?

答:执行该程序片段后(BL)=0FFH,CF=0,注意,这是受XOR指令的影响,XOR指令将CF强置为0,而DEC指令不影响CF;OF=0,此标志是受DEC指令影响的结果。此题中应注意,逻辑运算指令会将CF、OF强置为0,而DEC指令不影响CF标志。

15.按照各小题的要求分别设计程序片段。

(因存在多种设计方式,程序设计题目的答案仅作为参考)

(1)将AL寄存器的高4位与低4位交换

MOV CL, 4 ROL AL, CL

(2)将TF标志位置1 PUSHF POP AX OR AX, 0100H PUSH AX POPF

(3)将AL寄存器的第7位清0,但不影响其它数据位

AND AL, 7FH

(4)分离AL寄存器的最低两位,其它数据位清0。

AND AL, 03H

(5)分离AL寄存器的高4位与低4位,并分别保存在BL、BH的低4位

PUSH AX AND AL, 0FH MOV BL, AL POP AX AND AL, 0F0H MOV CL, 4 ROL AL, CL MOV BH, AL


第5章作业答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:产业经济学习题(本经济12)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: