微机原理习 题 2

发布时间 : 星期四 文章微机原理习 题 2更新完毕开始阅读

RCL SHL RCL SHL RCL SHL RCL SHL RCL

BX,1 AX,1 BX,1 AX,1 BX,1 AX,1 BX,1 AX,1 BX,1

2.18 试分析下列程序完成什么功能?

MOV SHL MOV SHL SHR OR

CL,4 DX,CL BL,AH AX,CL BL,CL DL,BL

解:把32位二进制代码(DX, AX)联合左移4位。

2.19 已知程序段如下:

MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX

试问:(1)每条指令执行后,AX寄存器的内容是什么? (2)每条指令执行后,CF,SF及ZF的值分别是什么? (3)程序运行结束时,AX及DX寄存器的值为多少? 解:

MOV MOV ROL DEC MOV MUL

AX,1234H CL,4 AX,CL AX CX

CX,4

;AX内容为1234H,CF、SF、ZF的值保留初值 ;AX内容为1234H,CF、SF、ZF同上 ;AX内容为2341H,CF=1、SF=0、ZF=0 ;AX内容为2340H,CF=1、SF=0、ZF=0 ;AX内容为2340H,CF=1、SF=0、ZF=0 ;AX内容为8D00H,CF=0、SF=0、ZF=0

9

2.20 程序中的“转移”是个什么概念?CPU执行转移指令是如何实现转移的? 解:程序中的“转移”是指改变程序的顺序执行过程,某条指令执行完后,不是紧接着执行该指令后面的指令,而是执行其它的指令。CPU是通过改变CS和IP指令指针的值来实现转移的。

2.21 设(DS)=2000H,(BX)=0030H,(SI)=0202H,(20232H)=00H,(200233H)

=06H,分别执行下述两条指令后,实际转移的目标地址物理地址多少? (1)JMP (2)JMP

BX

Word PTR[BX+SI]

解:(1)目的地址为0030H

(2)转移的目标地址为:由[BX+SI]寻址得存储单元的地址为20232H,目的地址为0600H。

2.22 编写指令序列,实现下述要求

(1) 使AX寄存器的低 4 位清零,其余位不变。 (2) 使BX寄存器的低4 位置1,其余位不变。

(3) 测试 BX中的位0 和位4,当这两位同时为零时,将AL置1,否则AL置0。 解:(1)AND AX, 0FFF0H

(2)OR

JZ

AX, 000FH NEXT

;ZF=1,表明这两位同时为0,转走将AL置1 ;ZF=0,表明这两位不同时为0,将AL清0

(3)TEST AX, 0011H

MOV AL,0 JMP EXIT

NEXT: MOV AL,1 EXIT:

2.23 下面程序段在什么情况下执行结果是(AH)=0?

BEGIN: IN AL, 60H

TEST AL, 80H JZ BRCH1 XOR AX, AX JMP STOP

BRCH1: MOV AH, 0FFH

10

STOP: ??

解:从60H端口读到是数据最高位为1时,使(AH)为0;数据最高位为0时,使(AH)为0FFH。

2.24 “CALL”指令与“JMP”指令相同之处是什么?不同之处是什么?

解:相同之处:“CALL”指令和“JMP”指令都能实现程序的控制转移,改变程序顺序指令的过程。

不同之处:“CALL”指令执行时,使程序转移到子程序中执行,执行完子程序后,还是会回到调用程序,继续执行紧跟在“CALL”指令之后的那条指令。但“JMP”指令执行完后一般不会去执行紧跟在“JMP”指令之后的那条指令。

2.25 叙述8086/8088CPU执行指令“CALL DWORD PTR[100H]”的步骤。

2.26 设下列程序执行前,栈顶指针SS:SP为1000H:0220H,试求:

POP CX POP BX POP AX RET 4

(1) 画出该程序执行后的堆栈存储情况示意图。 解:使堆栈指针加10,上面的5个字的内容出栈,图略。 (2) 给出当前栈顶SS和SP的值。

(SS)=1000H, (SP)=022AH

2.27 一双字长的带符号数放在X和X+2中(X为变量),试编写一程序对这个数求其绝

对值。 解:

TEST [X+2], 8000H ;测试最高位,判断正负,负数好取绝对值 JZ MOV MOV NOT NOT ADD ADC

DONE AX, X DX, [X+2] AX DX AX, 1 DX, 0

11

MOV MOV

[X], AX [X+2], DX

DONE:

2.28 试编写一个汇编语言程序,要求将键盘输入的小写字母用大写字母显示出来。 解:CODE SEGMENT

2.29 试编写程序实现错误!未找到引用源。的功能,但是不要使用字符串操作指令。 解:

LEA LEA INC INC MOV CMP

SI, STRING1-1

DI, STRING2-1 SI DI AL, [SI] AL, ES:[DI]

ASSUME

MOV INT CMP JZ OR INT JMP INT END

CS: CODE AH, 01H 21H

AL, 0DH ;输入回车推出程序 EXIT AL, 20H 21H START 21H START

START:

MOV AH, 02H

EXIT: MOV AX, 4C00H

CODE ENDS

MOV CX, 20

AGA:

LOOPZ AGA

2.30 试编写程序实现错误!未找到引用源。的功能,但是不要使用字符串操作指令。 解: LEA DI, STRING2

MOV AL, ‘A’ MOV CMP

CX, 20 AL, ES:[DI]

12

AGA:

联系合同范文客服:xxxxx#qq.com(#替换为@)