微机原理与接口技术 顾晖 习题参考答案 下载本文

(1)MOV BYTE PTR [BP],200指令执行后,(58200H)=200H (2)MOV WORD PTR [BX],2000指令执行后,(22400H)=2000H 8.答:

当前栈顶地址是:FE00H:2010H;

执行PUSH BX指令后,栈顶地址变为:FE00H:200EH,栈顶2字节内容是:3457H。 9.答:

(1)(DX)=3C62H,CF=1 (2)(DX)=03C6H,CF=0 (3)(DX)=18A0H,CF=1 (4)(DX)=2BC6H,CF=0 (5)(DX)=18B7H,CF=1 (6)(DX)=BCC5H,CF=0 10.答: (AX) CF ZF OF SF PF (1) 134EH 0 0 0 0 1 (2) 0821H 0 0 0 0 1 (3) F142H 1 0 0 1 1 (4) 0A69 1 0

10

0 1 1 (5) F596 - - - - - (6) 0A69 0 0 0 0 1

11.设AX和BX是符号数,CX和DX是无符号数,若转移目标指令的标号是NEXT,请分别为下列各项确定CMP和条件转移指令。 5分

1)CX值超过DX转移 2)AX值未超过BX转移 3)DX为0转移 4)CX值等于小于DX转移 答:

(1) CMP CX,DX JA NEXT

(2)CMP AX,BX JNA NEXT (3)CMP DX,0 JZ NEXT

(4)CMP CX,DX JBE NEXT

12.阅读分析下列指令序列 ADD AX,BX JNO L1 JNC L2 SUB AX,BX JNC L3 JNO L4 JMP L5

若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1-L5中的哪一个)?

1)AX=14C6H, BX=80DCH 2)AX=0B568H,BX=54B7H 3)AX=42C8H, BX=608DH 4)AX=0D023H,BX=9FD0H

11

5)AX=9FD0H, BX=0D023H 答:

(1) 程序转向L1。 (2) 程序转向L1。 (3) 程序转向L2。 (4) 程序转向L5。 (5) 程序转向L5。 13.答:

因为普通运算指令执行的是二进制数的运算,而BCD码是十进制数,所以,需要对运算结果进行十进制调整。

在做BCD码的加、减和乘法运算时,十进制调整指令放在运算指令之后;而作BCD码的除法运算时,在运算指令之前用十进制调整指令对被除数进行调整。 14.答: MOV Cl,3 10

SHR bx,cl 15.答:(略) 16.答: 17.答:

DATA SEGMENT COUNT=100H ORG 1000H

D_DATA DB COUNT DUP(?) ORG 2170H

S_DATA DB COUNT/5 DUP(1,2,3,4,5) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA START:

MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,S_DATA LEA DI,D_DATA MOV CX,COUNT REP MOVSB MOV AL,1 MOV CX,COUNT LEA DI,D_DATA AGAIN:

CMP BYTE PTR [DI],AL JNZ NEXT

MOV BYTE PTR [DI],' ' NEXT:

12