《微机原理与接口技术》参考答案(2)

2019-01-05 12:49

| | | |

?? 20H 0FH 86H 80H

|0FFACH←SP |0FFADH |0FFAEH |0FFAFH

再执行一条POP后:

| |0FF00H←SS ?? | 86H |0FFAEH←SP | 80H |0FFAFH

10. 用一条指令实现将BX与SI之和传送给CX的功能。

答:LEA CX, [BX+SI]

11. 写出下列指令中每条指令的执行结果,并指出标志位CF、ZF、OF、SF的变化情况。

MOV BX, 40ABH ADD BL, 09CH MOV AL, 0E5H CBW ADD BH, AL SBB BX, AX ADC AX, 20H SUB BH, -9 答:MOV BX, 40ABH ;将立即数40ABH传给寄存器BX,对标志位无影响 ADD BL, 09CH ;将9CH与ABH相加,结果47H存入BL,CF=1,ZF=0, ;OF=1,SF=0 MOV AL, 0E5H ;将立即数E5H传给寄存器AL,对标志位无影响 CBW ;对AL进行符号扩展,即AX为FFE5H,对标志位无影响 ADD BH, AL ;将AL中的数即E5H与BH中的数40H相加,结果25H存BH, ;CF=1,ZF=0,OF=1,SF=0 SBB BX, AX ;将BX中的数2547H减去AX中的数FFE5H,再减去标志位 ;CF=1,即将结果2561H存入BX中,CF=1,ZF=0,OF=1,SF=0 ADC AX, 20H ;将AX中的数FFE5H加20H,再加CF=1,即得0006H存 ;入AX,CF=1,ZF=0,OF=1,SF=0 SUB BH, -9 ;将BH中的数25H加上F7H(补码),即得1BH存入BH,CF=1,

;ZF=0,;OF=1,SF=0

12. 简述乘法指令和除法指令寻址方式的特点。

答:都是隐含寻址指令。都分8位和16位两种情况,其中8位乘法的被乘数在AL ·6·

中,指令给出8位乘数,得到的16位结果存放在AX中;16位乘法的被乘数在AX中,指令给出16位被乘数,32位结果在DX:AX中。8位除法的16位被除数在AX中,指令给出8位除数,8位商在AL中,8位余数在AH种;16位除法的32位操作数在DX:AX中,指令给出16位操作数,16位商在AX中,16位余数在DX中。乘法指令和除法指令都不允许立即数。

13. 完成一个计算DL(无符号数)三次方的指令序列。

答:MOV AL,DL IMUL DL MUL DL 14. 按下列要求编写指令序列。

清除DH中的最低三位而不改变其他位,结果存入BH中;

把DI中的最高5位置1而不改变其他位; 把AX中的0~3位置1,7~9位取反,13~15位置0; 检查BX中的第2、5和9位中是否有一位为1; 检查CX中的第1、6和11位中是否同时为1; 检查AX中的第0、2、9和13位中是否有一位为0; 检查DX中的第1、4、11和14位中是否同时为0; 答:(1)MOV BH,F8H

AND

BH,DH

(2)OR DI,FFF8H (3)OR AX,000FH XOR AX,0380H

AND

AX,1FFFH

(4)MOV DX,BX

TEST DX,0004H;若ZF=0,则第2位为1 TEST DX,0020H;若ZF=0,则第5位为1

TEST

DX,0200H;若ZF=0,则第9位为1

(5)XOR CX,0824H

JE

YES

(6)TEST DX,0001H;若ZF=1,则第0位为0

·

TEST TEST TEST

DX,0002H;若ZF=1,则第2位为0 DX,0200H;若ZF=1,则第9位为0 DX,2000H;若ZF=1,则第13位为0

(7)XOR DX,4812H

JE

YES

15. NOT指令和NEG指令有何不同?编写指令序列将(DX:AX)中的双字算数求反。

答:NOT指令是对操作数的按位求反,称为逻辑求反。而NEG指令是算数求反。 NOT NOT ADD ADC

AX DX AX,1 DX,0

16. 使用移位指令将40和-49分别乘2和除2,请注意选择合适的移位指令。

答:MOV

SHL MOV SAR MOV SHL MOV SAR

AX,0028H;将40存入AX AX,1;(AX)*2 AX,0028H;将40存入AX AX,1;(AX)/2

AX,FFCFH;将-49存入AX AX,1;(AX)*2

AX,FFCFH;将-49存入AX AX,1;(AX)/2

17. 分析下面指令序列完成的功能。

MOV CL, 4 SHL

DX,

CL

MOV BL, 4H SHL SHR

AX, BL, CL

CL

·8·

OR DL,BL

CL,

4;将4存入CL

答:MOV SHL

DX, CL;(DX)*16

MOV BL, 4H;将4H存入BL SHL SHR OR

AX,

CL;(AX)*16

BL, CL;(BL)右移4位,为0 DL,BL;BL为0,取得DL的高四位

18. 方向标志DF的作用是什么?用于设置或消除该标志位的指令是什么?

答:作用是控制串的处理方向。指令STD设置DF=1,CLD清除DF。

19. 已知数据段中保存有100个字的数组,起始地址为0B00H。编写指令序列实现将-1插入

到第一个字。 答:

20. 什么是段间转移?什么是段内转移?它们的实现机制有何不同?

答:根据转移指令和转移指令要转移到的目标位置之间的关系,把转移分为段内转移和段间转移。段内转移中,转移的目标位置在当前代码段内,CS的内容不变,只改变IP的内容;段间转移中,转移的目标地址不在本段,此时CS和IP的内容都需要修改。 21. 条件转移指令中,所谓的“条件”是什么,如何做到?如何使用?请举例说明。

答:所谓的条件就是某个标志位或某几个标志位的状态。单一条件的5个标志位ZF、CF、OF、SF和PF,以及它们的否定。多个标志位的联合还可以构成复合条件。例如:

CMP JZ ?? Equal:

22. 假设AX和BX中的内容是有符号数,CX和DX中的内容是无符号数,试实现:

如果(DX)>(CX),则转到EXCEED; 如果(BX)>(AX),则转到EXCEED;

AX,1 ;执行(AX)-1不保存结果 Equal

;如果结果为零(ZF=1)则转移到Equal

·9·

如果(CX)=0,则转到ZERO;

如果(BX)-(AX)将产生溢出,则转到OVERFLOW; 如果(BX)?(AX),则转到NOTBIG; 如果(DX)?(CX),则转到NOTBIG; 答:(1)CMPDX,CX

JA

EXCEED

(2)CMPBX,AX

JG

EXCEED

(3)CMPCX,0

JZ

ZERO

(4)CMPBX,AX

JO

OVERFLOW

(5)CMPBX,AX

JLE

NOTBIG

(6)CMPDX,CX

JBE

NOTBIG

23. 已知数据段中保存有100个字的数组,起始地址为0B00H。编写指令序列实现将数组中

的每个字加1。 答:LEA

MOV

SI,0B00H CX,100 AX,[SI] AX [SI],AX SI,2 L1

L1:MOV

INC MOV ADD LOOP

24. 简述段内调用和段间调用的主要区别。

· ·10


《微机原理与接口技术》参考答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新-2018电大学前教育专业(专科)《学前游戏理论与指导》试题考

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

马上注册会员

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