微机原理及应用(陈继红、徐晨)课后习题答案

0821H 0 0 0 0 1

(3)SUB AX,VALUE ; F142H 1 0 0 1 1

(4)CMP AX,VALUE ; 0A69H 1 0 0 1 1

(5)NOT AX ; F596H X X X X X

(6)TEST AX,VALUE ; 0A69H 0 0 0 0 1

3.24 设 AX和

BX中是符号数, CX和

DX是无符号数,请分别为下列各项确定 CMP

和条件转移指令。 CX值超过 DX转移。 AX未超过 BX转移。 DX为 0转移。

CX值等于小于 DX转移。 答案:

(1)

CMP CX,DX JA NEXT (2)

CMP AX,BX JLE NEXT (3)

CMP DX,0 JZ NEXT 4

微机原理及应用(陈继红、徐晨)课后习题答案

(4)

CMP CX,DX JBE NEXT

3.25 阅读分析下列指令序列: ADD AX,BX JNO L1 JNC L2

SUB AX,BX JNC L3 JNO L4 JMP L5

若 AX和

BX的初值分别为以下

5种情况,则执行该指令序列后,程序将分别转向何处 (L1~L5中的一个)。

AX=13C6H, BX=80DCH

AX=0B568H,BX=54B7H

AX=42C8H, BX=608DH

AX=0D023H,BX=9FD0H

AX=9FD0H, BX=0D023H

答案:(1)转

L1:不溢出,转移到 L1处;

(2)转

L1:不溢出,转移到 L1处;

(3)转

L2:溢出,不转移到 L1处,进位 CF=0,转移到 L2处; (4)转

L3:溢出,不转移到 L1处,进位 CF=1,不转移到 L2处,减法借位 CF=0,转移 到

L3处; (5)转

L5:溢出,不转移到 L1处,进位 CF=1,不转移到 L2处,减法借位 CF=1,不转 移到

L3处,不溢出 OF=0,转移到 L4处;

3.26 用普通运算指令执行 BCD码运算时

,为什么要进行十进制调整 ?具体地讲,在进行

BCD码的加、减、乘、除运算时

,程序段的什么位置必须加上十进制调整指令 ?

解:因为

8086指令把操作数作为二进制数进行二进制运算 ,要得到正确的 BCD结果,需

要进行调整。在加、减、乘法指令之后加上 BCD调整指令

,而在除法指令之前先用 BCD调

整指令再用除法指令。

3.27在编写乘除法程序时,为什么常用移位指令来代替乘除法指令?编写一段程序,实 现将

BX中的数除以

10,结果仍然放在 BX中。

解:用移位指令时,左移 l位相当于将操作数乘 2,右移

1位相当于将操作数除 2。用

移位指令实现一些简单的乘除法程序,比用乘法指令和除法指令进行乘、除运算要快得多。 用除法指令实现:

MOV CL 0AH

MOV AX,BX

IDIV CL

MOV BX,AX

3.28 串操作指令使用时特别要注意和 SI,DI这两个寄存器及方向标志 DF密切相关。请 具体就指令

MOVSB/MOVSW、CMPSB/CMPSW、SCASB/SCASW、LODSB/LODSW、 STOSB/STOSW列表说明和 SI、DI及 DF的关系。 解答:

SI DI DF

MOVSB/MOVSW指出源地 址

指出目的地 址 不带

REP重复前缀时, DF=0,每传送一次, SI、 DI加 1或加

2,DF=1,SI、DI则减 1或减 2

CMPSB/CMPSW 存放源字 符串首地 址

存放目的字 符串首地址

DF=0,每次比较后, SI、DI加 1或加 2,CX减

1,DF=1,SI、DI减 1或减 2,CX减 1

SCASB/SCASW 无指出字符串 首址偏移量 无

LODSB/LODSW作为地址 指针

存放处理结 果

DF=1时,地址作增量修改, DF=0时,地址作减 量修改 5

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4