微机原理期中自测试题姓名_______班级_______学号_______成绩_______
一、填空题(每空1分,共40分)
1、宏汇编语言程序被汇编时,_________语句产生代码指令,_______语句不产生代码指令,_______语句可能产生也可能不产生代码指令。
2、调用程序、子程序传送参数的方法通常有_______、_______和_______三种方法。
3、伪指令EQU、DB、DW、MACRO的标号名字域必须有名字或标号的伪指令为_______。
4、虽在本模块无定义,却可以被单独引用的名字或标号,必须用_______伪指令给以说明。
5、PENTIUM的工作模式有_______,_______,_______。
6、下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数_______;单字节有符号整数_______。
7、在汇编语言中,END伪指令有两种格式。主模块中的格式为_______;非主模块中的格式为_______。
8、乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型属性为字节,则目的操作数在_______中,若源操作数的类型属性为字,则目的操作数在_______中。
9、请给出标志寄存器中标志位OF、IF、SF、ZF、PF、CF的说明,OF_______、IF_______、SF_______、ZF_______、PF_______、CF_______。
10、堆栈是按照_______原则组织的一片连续的存储区域。
11、变址寻址的有效地址是变址寄存器的内容与_______代数和。
12、指令XLAT通常用于查表操作,在使用该指令前,应把表首的偏移首地址送入_______,待转换的代码在表中的序号送________。
13、若要求不产生汇编错误,则字符串'ABC'只能出现在伪指令_______中。
14、100.25转换成单精度格式为___________________B。
15、若x的单精度格式为11000001110010010000000000000000B,则x=__________。
16、保护模式下,描述符表分为_______,_______,_______ 。
17、实模式下,对于指令 MOV AX,DS:[BX]
执行前DS=1000H,BX=11H,
则操作数DS:[BX]的有效地址为________。
18、对于指令PADDSW MM0,MM1;
执行前MM0=000000008000FFFFH,MM1=00000000FFFF8000H,
执行后,MM0=___________________ H。
19、为下述情况各举一例。
⑴寄存器与存储单元内容相加送寄存器_______。
⑵寄存器互送_______。
⑶将标志寄存器进栈_______。
⑷立即数与寄存器内容相加送寄存器_______。
⑸将48H、5AH存入字节数据区ARRAYB_______。
二、指出下列指令所用到的寻址方式(10分)
指令 目的操作数寻址方式 源操作数寻址方式
MOV AX,1000H
MOV AX,DS:[1000H]
MOV AX,DX
MOV [BX],AL
MOV [BX+SI+5],AX
MOV [BP],BX
MOV AX,[DI+10]
MOV AX,[SI]
MOV EAX,[ESI*4+50]
MOV EAX,[EDX*2+EBP+0FH]
三、(10分)阅读如下程序段,回答提出的问题。
MOV AX,3456
XCHG AX,BX
MOV AX,3456
SUB AX,BX
JE DONE
KK: ADD AX,BX
...
DONE:
该程序段执行完JE DONE语句后,AX=_______,ZF=_______,IP=_______。
四、(10分)
请在程序段的每一空框内填入一语句(不得修改其它语句),以实现下述功能:将字变量VARM1中的非零数据左移到最高位为“1”止,左移次数存入字节变量VARB中,左移后的结果存入字变量VARW中。
MOV BL,0
MOV AX,VARW1
JS DONE
GOON: INC BL
ADD AX,AX
DONE, MOV VARW,AX
五、(10分)
编写一个子程序,完成两个非压缩型BCD数(每个数均不大于99)的加法。要求通过堆栈传递参数。
六、(20分)
编写一个程序,接受键盘输入的一个数,计算以该数为半径的圆的面积,并输出结果。