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

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;

4. 在N分支结构中,至少要使用N—1条 JMP指令,它的作用是什么?

5. 不使用CALL指令是否可以实现子程序的调用?若可以,举例说明。

6. 写出3条以上的可以改变程序执行流程的指令,并简述其用途。. 7.

在子程序中,可否改变子程序的返回地址?若可以,则举例说明。

8. 为什么特别强调为子程序加上必要的注释? 解答: 1. 2. 3. 4. 5. 6. 7. 8.

五.名词解释 解答:

六.应用题

1. 能被4整除但不能被100整除,或者年被400整除的年份是闰年。编程写一个完整的程序,

求出2012年~2099年中的所有闰年年份,并把它们存放在数组Lyear中。

2. 编程写一个完整的程序,求出2~100之间的所有素数,并将它们存入Prime数组中,素数 的个数存入变量Pcounter中。

3. 编程写一个完整的程序,将数组aray中的元素按逆序存放,要求程序中附加的变量最少。 数据段的定义如下:

.data

aray dword 12,4, 168,122,-33,56,78,99,345, 66,-5

4. 编程写一个完整的程序,求数组aray中的最大值与最小值,并将它们分别存入max和min单

元中。数据段的定义如下:

5. 编程写一个完整的程序统计msg中的空格的个数与小写字母的个数,并分别将它们存入sp

ace单元与char单元中。数据段的定义如下:

.data

msg byte 'I love XUT !',13,10,0 space dword ? max dword ? .data

aray dword 12,4,-168,122,-33,56,78,99,345,-66,-5 min dword ?

char dword ?

6. 编程写一个完整的程序,将字符串msg中所有的小写字母转换为大写字母。数据段的定义

如下:

.data

msg byte 'I love XUT !',13,10,0

7. array是一无符号数数组,数据段的定义如下。要求:编程写一个完整的程序求出数组元 素中偶数的和,并将它存入esum单元中。

array dword 12,34,123,78,43,234,79,86,98,20 esum dword ? .data

8. “回文串”是一个正读和反读都一样的字符串,比如“eye”、“level”、“noon”等 。请写一个程序测试一字符串是否是“回文”, 是“回文”则显示“Y”,否则显示“N”。 显示一个字符的子程序为:dispc,入口参数:AL=要显示个字符的SACII码。