微机原理与接口技术1-8习题解答王玉良 下载本文

(2)CX=E000H,DX=78FFH,SFZFAFPFCFOF=101101B (3)CX=EE01H,DX=78FFH,SFZFAFPFCFOF=101010B (4)CX=EE00H,DX=78FFH,SFZFAFPFCFOF=101110B (5)CX=6000H,DX=78FFH,SFZFAFPFCFOF=00×100B (6)CX=7FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B

(7)CX=1FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B

7.若AX=FFFEH,BX=FFFDH,求执行指令IMUL BX后,DX与AX中的内容。指出标志位OF与CF的状态。

解 AX=0006H,DX=0000H,OFCF=00B

8.若AL=75H,BL=48H, (1)求执行指令

ADD AL,BL DAA

之后AL=?标志AF=?CF=?并说明BCD码调整情况。 (2)若执行指令SUB AL,BL与DAS后,情况又如何? 解

(1)AL=23H,AFCF=11B

(2)AL=27H,AFCF=10B

9.设X、Y、R、S、Z均为16位无符号数的变量。按已给定的表达式Z(X+Y)/(R-

S)→Z,有程序如下,试在空格处填入适当的指令(注:在加减过程中均无进位和借位)。 MOV AX,X ① MOV CX,R SUB CX,S ② ③ MOV Z,AX MOV Z+1,DX HLT 解

①ADD AX,Y ②MUL Z

③DIV CX

10.若有一个四字节数,放在寄存器DX与AX中(DX中放高16位),要求这个4字节数整个左移一位如何实现?右移一位又如何实现? 解

(1)DX与AX左移一位:

SHL AX,01 RCL DX,01 (2)DX与AX右移一位:

SHR DX,01 RCR AX,01

11.若把1K字节的数据块从偏移地址为1000H开始的单元传送到偏移地址为1400H开始的缓冲区。试用串传送操作指令和一般传送指令两种方法各编一程序实现。 解

(1)利用串操作指令编程如下:

MOV SI,1000H MOV DI,1400H MOV CX,400H CLD REP MOVSB MOV AM,4CH INT 21H

(2)利用一般传送指令编程如下:

MOV SI,1000H MOV DI,1400H MOV CX,400H NEXT:MOV AL,[SI]

MOV[DI],AL INC SI INC DI

LOOP NEXT MOV AH,4CH INT 21H

12.若在内存缓冲区中有一个长度为256个字节的数据块,起始地址偏移量为2000H。数据块中的数据有正有负,要求把其中的正负数分开.分别送至同段的两个缓冲区,存放正数的缓冲区的起始地址偏移量为2100H,存放负数的缓冲区的起始地址偏移量为2200H。 试编一程序。 解

MOV SI,2000H MOV CX,100H XOR DX,DX LOOP: MOV AL,[SI]

ADD AL,0 JNS PLUS INC DH NEXT: INC SI

DEC CX JNZ LOOP JMP STOP PLUS: INC DL

JMP NEXT