教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

微机原理及应用A试题集19334(8)

来源:网络收集 时间:2025-09-15
导读: A. RET 3*1 B. RET 3*2 C. RET 3*3 D. RET 3*4 8. 主程序通过堆栈向子程序传递了3个参数,子程序调用结束后,在主程序中清除堆栈中3 个参数正确的指令是( )。 9. 条件转移指令JZ Label的测试条件是( )。 A. ZF

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. 循环结构程序一般有三个部分组成,它们是__________,循环体和__________部分。

6. 条件转移指令JE Label的测试标志位是__________,条件转移指令JNO Label的测试标 志位是__________。

7. .过程定义开始是“TEST PROC”语句,则过程定义结束的语句是__________。宏定义开 始是“DISP MACRO”语句,则宏定义结束的语句是__________。

8. 利用堆栈传递子程序参数的方法是固定的,在子程序中通常是利用寄存器__________来 访问栈中的参数,采用的寻址方式是__________。

9. 调用程序和子程序之间的信息传送称为__________,而当传递的信息很大时通常通过___ _______来进行传递。

10. 在LOOP Label 指令构成的循环中,若ECX的初值为0,则循环体将被执行__________次;

若ECX的初值为—100,则循环体将被执行__________次。

11. 只要堆栈空间允许,子程序嵌套调用的层次__________,子程序也可调用本身,这称为_

_________。

12. 通常在子程序的开始部分要保护______________________寄存器,但用做出口参数的通 用寄存器则__________。

13. 通常在子程序中的参数分为两种类型,分别称为__________和 __________。

14. 通常在子程序中至少要有一条__________指令用于返回主程序,而汇编程序在汇编时并 不检测__________指令是否存在。

15. 在主程序中,采用“JMP subName”指令可以________子程序subName,但子程序结束后

____________________________。 解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

12. 13. 14. 15.

四.简答题

1. 将下面C语言程序的代码片段转换为功能等价的汇编语言代码片段,其中sign与sinteger 均为双字变量。

else If ( siteger > 0) sign = 1; else sign = -1; sign = = 0; if ( sinteger = = 0)

2. 将下面C语言程序的代码片段转换为功能等价的汇编语言代码片段,其中ch1与caps均为

字节变量。 if (ch1> =’a’ && ch1< =’z’)

caps= =0;

if (ch1> =’A’ && ch1< =’Z’) caps= =1;

3. 将下面C语言程序的代码片段转换为功能等价的汇编语言代码片段,其中sum与i变量均为 双字变量。

sum=0;

for ( i=1;i< =100;i++) if ( i%2= =0) sum=sum+i;

…… 此处隐藏:1274字,全部文档内容请下载后查看。喜欢就下载吧 ……
微机原理及应用A试题集19334(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/593842.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)