微机原理及应用A试题集19334 下载本文

1. 2. 3. 4. 5. 6. 7. 8.

六.应用题 解答:

第5章 汇编语言程序设计

一.选择

1. 循环指令LOOP终止循环的条件是( )。

A.ECX=0 B. ECX=0,且ZF=0 C.ECX≠0,且ZF=0 D. ECX≠0,或ZF=1

2. 循环指令LOOPNZ终止循环的条件是( )。

A.ECX=0,或ZF=1 B. ECX=0,且ZF=0 C.ECX≠0,且ZF=0 D. ECX≠0,或ZF=1

3. LOOP指令执行时,隐含计数器是( )。

A. ESP B.EBX C. ECX D.EDI

4. 当A>B时转移的条件转移指令为(A、B为无符号数)( )。

A. JA B. JAE C. JG D. JGE

5. 当A>=B时转移的条件转移指令为(A、B为 有符号数)( )。

6. 条件转移指令JC Label的测试条件是( )。

A. ZF = 1 B. SF = 1 C. OF = 1 D. CF = 1 A. JA B. JAE C. JG D. JGE

7. 若主程序通过堆栈向子程序传递了3个参数,子程序返回主程序时,在子程序中清除堆栈

中3个参数正确的RET指令是( )。

A. RET 3*1 B. RET 3*2 C. RET 3*3 D. RET 3*4

8. 主程序通过堆栈向子程序传递了3个参数,子程序调用结束后,在主程序中清除堆栈中3 个参数正确的指令是( )。

9. 条件转移指令JZ Label的测试条件是( )。

A. ZF = 1 B. SF = 1 C. OF = 1 D. CF = 1 A. ADD ESP, 3*2 B. ADD ESP, 3*4 C. ADD EBP, 3*2 D. ADD EBP, 3*4

10. 利用堆栈传递子程序参数的方法是固定的,若主程序通过堆栈向子程序传递了3个参数, 则在子程序中, 主程序中最后一个被压入栈中的参数可以用( )的形式来访问。

A. [EBP-4] B. [EBP-8] C. [EBP+4] D. [EBP+8]

11. 通过堆栈传递参数,在子程序中使用EBP间址取得参数的原因是( )。

A. EBP没有被占用 B. EBP间址速度较快 C. EBP间址默认的段是堆栈段 D. EBP是基址指针

12. 通过寄存器传递参数比通过堆栈传递参数的优点是( )。

A. 能传递更多得参数 B. 存取效率高 C. 能确保正确调用 D. 没有副作用

13. 利用堆栈传递子程序参数的方法是固定的,在子程序中, 修改参数( )可以改变子程 序的返回地址。

A. [EBP-4] B. [EBP-8] C. [EBP+4] D. [EBP+8]

14. . 在用LOOP Label 指令构成的循环中,若ECX的初值为-10,则循环体将被执行( ) 次。

A. 10 B. 0 C. 100 D. >100

15. 在用LOOP Label 指令构成的循环中,若ECX的初值为10,在LOOP Label 指令前有一条“

SUB ECX,2” 指令,则循环体将被执行( )次。

A. 10 B. 5 C. 4 D. >10000

解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. C 12. 13. 14. 15. D

二.判断

1. 指令指针或者还包括代码段寄存器值的改变将引起程序流程的改变。

2. JMP指令对应高级语言的GOTO语句,所以不能使用。

3. 因为条件转移指令Jcc要利用标志作为条件,所以也影响标志。

4. JA和JG指令的条件都是“大于”,所以是同一个指令的两个助记符。

5. CALL指令用在调用程序中,如果被调用程序中也有CALL指令,说明出现了嵌套。

6. 子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。

7. 利用寄存器在主子程序间传递参数,其实质就是利用全局变量来传递参数。

8. 子程序采用堆栈传递参数时,只能在主程序中修改ESP方可保持堆栈的平衡。

9. 汇编语言中不允许递归调用子程序。

10. 与高级语言中的自定义函数不同,汇编语言中的子程序不能将计算的结果返给主程序。

11. 汇编语言中,子程序嵌套调用就是递归调用。

12. 指令CALL或RET的执行,不改变程序执行的流程。

13. 在软件中只使用一次的功能编写成子程序完全没有必要。

14. 在执行CALL指令时,硬件自动将断点地址压入堆栈中。

15. 在高级语言中,若多重循环出现\交叉”的错误,编译系统通常会给出提示来。若汇编语

言程序中也出现\交叉”错误时,汇编程序也会给出提示来。 解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

三.填空

1. JMP指令根据目标地址的寻址方式,可以分成三种类型:相对寻址、__________和______ ____。

2. 假设在平展存储模型下,EBX=1256H,双字变量TABLE的偏移地址是20A1H,线性地址32F

7H处存放3280H,执行指令“JMP EBX” 后EIP=__________,执行指令“JMP TABLE[EBX]” 后EIP=__________。

3. “CMP EAX,3721H”指令之后是JZ指令,发生转移的条件是EAX=__________,此时ZF=_

_________。

4. JMP指令根据目标地址的寻址方式,可以分成三种类型:相对寻址、__________和直接寻 址,通常__________方式使用的最多。

5. 循环结构程序一般有三个部分组成,它们是__________,循环体和__________部分。