微机原理复习题 联系客服

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

.

19、比照高级语言编程来讨论汇编语言编程,总结归纳出两者之间三个以上的不同点或共同点(要是独立点,有对照,描述清楚)。

答题要点:

1、完成一个具体功能模块的算法,两者是相同的。

2、通过定义数据区,分配存储地址来定义变量,存储地址的符号名就是高级语言中的变量。 3、寄存器可以作为临时变量使用,用完后又可以重新定义,这样可以不占用内存地址,而且执行速度快,这是高级语言不具备的。

4、汇编语言程序需要对寄存器进行分配使用,而且有一些特定用法,如乘除法的默认寄存器,循环计数器CX等。寄存器一次定义使用未结束前不能再做另外用途,否则需要用堆栈保护。而高级语言编程不需要。

5、汇编语言可以直接控制和检测计算机的硬件电路,最大限度的发挥硬件的功能,而且速度快、效率高,常用于硬件底层驱动程序和实时控制,这是高级语言无法做到的。 6、汇编语言可以最大限度的发挥编程的灵活性,编制出效率最高、速度最快的程序,所以常用于硬件底层驱动程序和系统核心程序,这是高级语言难于做到的。

20. 设堆栈段指针SP的初值为2400H,AX= 4000H,BX= 3600H,下列指令连续执行,试问:

(1) 执行指令PUSH AX后,SP的内容是多少? (2) 再执行PUSH BX后,SP和BX的内容是多少?

(3) 再执行POP AX后,寄存器SP、AX和BX的内容分别是多少? 答:(1)SP=2400H-2=23FEH (2) SP=23FCH,BX=3600H

(3) SP=23FCH+2=23FEH,AX=3600H,BX=3600H

21. 伪指令的主要作用是什么?在汇编语言源程序中,变量和标号各有哪几个属

.

.

性?

答:伪指令的主要作用是告诉程序如何进行汇编。 变量具有三个属性:段地址、偏移地址和类型 标号具有三个属性:段地址、偏移地址和类型

22.判断下列指令是否有误,若有错,说明原因并予以改正。 (1)ADC AX , 0ABH (2)OUT 3EBH , AX

(3)DEC WORD PTR [BP] (4)MOV BX,[AX] 答:(1)无误 (2)有错

端口地址大于8位,用DX间接寻址 MOV DX,3EBH OUT DX,AX (3)无误 (4)错

AX不能间接寻址,可改为 MOV BX,[SI]

23.已知BX=0F36H,CX=0004H,状态标志寄存器的内容为0,求下列每条指令执行后的结果是什么?标志位CF的内容是什么? (1)RCL BX,1 (2)CMP CX,02H 答:(1)BX=1E6CH CF=0

.

.

(2)CX=0004H CF=0

四、程序阅读与编程

1.编写指令序列将AX寄存器的高4位置1、第0、1位清0,第2、3位取反。 2.阅读程序,并写出结果 MOV AL, 05H MOV BX, 1050H XOR AX, AX ADD AL, BL

执行结果; AX=___ 0050H ______, CF=_____0____。 3.用两种方法编程实现:交换寄存器SI、DI 的内容

4. 编写指令序列将AX寄存器中的无符号数乘以10(要求用移位指令实现)

5.将BX寄存器的高4位屏蔽,其余位不变。 AND BX,0FFFH

6.将DX寄存器的高4位取反,其余位不变。 XOR DX,0F000H

7.LEA BX,[SI+0500H]

假设(DS)=4000H,(SI)=0100H,(40600H)=1234H,则BX= (2)MOV CX, 3

MOV AX, 50 NEXT: SUB AX, CX

.

.

LOOP NEXT HLT

执行上面的程序段后AX=

8.分析填空 MOV AX, 0001H MOV BX, 0002H PUSH BX PUSH AX

POP BX ;执行后 BX=___01H ____ ___ POP AX ;执行后 AX=__02H ____

MOV AX,3F5FH ;执行后 AL=___0F5H ____ AND AL,0FH ;执行后 AL=___05H __

9.若STR是字符串的首地址,指出下列程序的功能,并在所给程序段的划线处将语句加上注解。

LEA BX,STR ; 取STR 的偏移量放到BX中 MOV CX,20

LP : CMP [BX],‘*’

JNZ NEXT ; BX所指单元内容不为‘*’,则转移至NEXT

MOV [BX],‘$’ ; 将BX所指单元用‘$’替代 NEXT: INC BX LOOP LP HLT

程序的功能: 将STR开始的前20个字符中的‘*’用‘$’替代

.