微机原理习题答案1234章 下载本文

6. 设(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=3412H,(20102)=7856H,

(21200)=4C2AH,(21202)=65B7H,求下列指令执行后AX寄存器的内容: (1)MOV AX,1200H; (2)MOV AX,BX; (3)MOV AX, [1200H]; (4)MOV AX, [BX]; (5)MOV AX,1100[BX];(6)MOV AX, [BX][SI]; (7)MOV AX,1100[BX][SI]

解:(1)1200H (2) 0100H (3)4C2AH (4)3412H (5)4C2AH (6)7856H (7)65B7H

7. 执行下列指令后,DX寄存器中的内容是多少?

TABLE PYL ??

MOV BX,OFFSET TABLE ADD BX,PYL MOV DX,[BX]

解:DX = 10FFH 由-16(FFF0H)的高8位和10000(2710H)的低8位构成 8. 如果堆栈的起始地址为2200:0000,栈底为0100H,(SP)=00A8H,求

(1)栈顶地址; (2)SS的内容;

(3)再存入数据5678H,3AF2H后,SP的内容。

DW 25,36,-1,-16,10000,13 DW 7

解:栈顶地址 00A8H, SS = 2200H, 再存入2个字后,SP = 00A4H 9. 设已用伪指令EQU定义了4个标识符:

N1 EQU 2100 N2 EQU 10 N3 EQU 20000 N4 EQU 25000

下列指令是否正确?并说明原因。

(1)ADD AL,N1-N2; (3)SUB BX,N4-N3; (5)ADD AL,N2;

(2)MOV AX,N3+N4; (4)SUB AH,N4-N3-N1; (6)MOV AH,N2*N2

解:(1)错误。N1-N2=2090>255 (2)正确 (3)正确

- 12 -

(4)错误。N4-N3-N1=2900>255 (5)正确 (6)正确 10. 按下列要求写出指令:

(1)将AX寄存器的低4位清零,其余位不变; (2)将BX寄存器的低4位置1,其余位不变; (3)将AL寄存器的低4位保持不变,高4位取反;

(4)测试BX中的位1和位2,当这两位同时为0时将AL置0FFH,否则AL清零; (5)测试BX中的位1和位2,当这两位有一位为0时将AL置0FFH,否则AL清零; (6)将AL中保存的字母ASCII码变换成相应的大写字母的ASCII码; (7)将AL中保存的字母ASCII码变换成相应的小写字母的ASCII码; (8)将AX中的各位取反;

(9)将DX中的低7位取反,高9位不变;

(10)将CX中的低8位与高8位互换。

解:(1)AND AX,0FFF0H (2)OR BX,000FH (3)XOR

AL,0F0H

BX,06H

(5)

MOV

AX,BX AX,06H

(4) TEST

JZ ZERO AND

MOV

AL,00H

XOR AX,06H JZ OVER

MOV

AL,0FFH

JMP OVER

ZERO: MOV AL,0FFH

OVER:

OVER:

(6)AND AL,5FH 或者:

CMP

JL CMP JG

AL,61H

OVER (无需变换或不是字母) AL,7AH

OVER (不是字母)

AND AL,5FH 或 SUB AL,20H OVER:

- 13 -

(7)OR AL,20H 或者:

CMP

JL CMP JG

AL,41H

OVER (不是字母) AL,5AH

OVER (无需变换或不是字母)

OR AL,20H 或 ADD AL,20H OVER:

(8)XOR AX,0FFFFH (9)XOR DX,007FH (10)XCHG CH,CL 11. 写出完成下述功能的程序段:

(1)传送40H到AL寄存器; (2)将AL的内容乘以2; (3)传送16H到AH寄存器; (4)AL的内容加上AH的内容。 计算最后结果(AL)=? 解:(1)MOV AL,40H (2)SHL AL,1 (3)MOV AH,16H (4)ADD AL,AH AL=96H

12. 写出完成下述功能的程序段:

(1)从缓冲区BUF的0004偏移地址处传送一个字到AX寄存器; (2)将AX寄存器的内容右移2位;

(3)将AX内容与BUF的0006偏移地址处的一个字相乘; (4)相乘结果存入BUF的0020H偏移地址处(低位在前)。 解: (1) LEA SI, BUF

- 14 -

或者 NOT AX

MOV AX, [SI+4] AX,1 AX,1

WORD PTR 6[SI] 20H[SI],AX 22H[SI],DX

(2) SHR

SHR

(3) MUL (4) MOV

MOV

13. 设(BX)=11001011B,变量VAR的内容为00110010B,求下列指令单独执行后BX的内

容:

(1)XOR BX,VAR; (3)OR BX,VAR;

(2)AND BX,VAR; (4)XOR BX,11110000B; (6)TEST BX,1

(5)AND BX,00001111B; 解:(1)00F9H (2)0002H (3)00FBH (4)003BH (5)000BH (6)00CBH

14. 设(DX)=10111011B,(CL)=3,(CF)=1,求下列指令单独执行后DX的内容:

(1)SHR DX,1; (2)SAR DX,CL; (3)SHL DX,CL; (4)SHL DX,1; (5)ROR DX,CL; (6)ROL DL,CL; (7)SAL DH,1; (8)RCL DX,CL; (9)RCR DL,1 解:DX= 0000 0000 1011 1011B CF=1 CL=3 (1)SHR

DX,1

DX逻辑右移1

0000 0000 0101 1101B =

005DH

(2)SAR DX,CL (3)SHL DX,CL (4)SHL DX,1 (5)ROR (6)ROL

DX算术右移3 DX逻辑左移3 DX逻辑左移1

0000 0000 0001 0111B = 0000 0101 1101 1000B = 0000 0001 0111 0110B =

0017H 05D8H 0176H

6017H 00DDH

DX,CL DL,CL

DX循环右移3 DL循环左移3

0110 0000 0001 0111B = 0000 0000 1101 1101B =

(7)SAL DH,1 (8)RCL DX,CL

DH算术左移1 0000 0000 1011 1011B = 00BBH

05DCH

DX带进位循环左移3

- 15 -

0000 0101 1101 1100B =