汇编语言试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010-2011汇编语言程序设计期末试卷A卷
一、填空题(每空1分,共计10分)
1.“MOV AX,0”可寄存器AX清0。另外再写出三条可使寄存器AX清0的指令。
(1)_______________
(2)_______________
(3)_______________
2.标号可以有两种类型属性。它们是___ ___和____ ___。
3.程序设计的三种基本结构是:、、。4.分别用一条语句实现下述指明的功能
(1)双字变量DWV AR存放的地址指针送ES和SI。_____________;
(2)地址表达式V AR[4]的偏移地址送字变量ADDR。___________;
二、判断下列指令的正确性。如果错误,请指出错误的原因。(每题1分,共计10分)
(1)MOV CX,DL
(2)XCHG [SI],3
(3)MOV AX, BX+3
(4)POP CS
(5)SHL AX, CX
(6)MUL 16
(7)AND 7FFFH,AX
(8)MOV CS,AX
(9)SUB [SI],[DI]
(10)MOV [SI], 20H
三、简答题(每题5分,共计20分)
1. 简述指令AND和TEST、NOT和NEG之间的区别?
2. 简述段内转移和段间转移的区别?
3. 存储器寻址方式可分为哪几种?存储单元的有效地址有什么意义?
4. REP前缀的作用是什么?能否用指令REP LODSB读取DS:SI所指内存中的每个字符来进行处理?若不能,试说明原因。
四、指令分析题(每题10分,共计20分)
1. 下列程序段中,各指令执行后AX、CF、OF、ZF和SF的内容如何变化。
MOV AX, 0
DEC AX
NOT AX
AND AX, 0FFFFH
CMP AX, 0FFFFH
SUB AX, 1200H
MOV CL , 5
SAR AX, 1
SAR AX, CL
ADD AX, 0FFFFH
NEG AX
2. 假设各寄存器及物理地址中的内容如下,(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,指出各条指令源操作数的寻址方式,以及完成后AX寄存器中的内容
(1) MOV AX,1200H
(2) MOV AX,BX
(3) MOV AX,[1200H]
(4) MOV AX,[BX]
(5) MOV AX,1100H[BX]
(6) MOV AX,[BX][SI]
(7) MOV AX,1100H[BX][SI]
五、程序分析题(每题5分,共计20分)
1.下列程序段运行后,Y单元开始的存储区存放的数据是什么?
X DB 78H
Y DB 3 DUP(?)
…
LEA SI, Y
MOV CX, 3
MOV AL, X
LP: SAR AL, 1
MOV [SI], AL
INC SI
LOOP LP
2.分析下列程序段的功能
OR DX, DX
JNS L1
NOT DX
NOT AX
ADD AX, 1
ADC DX, 0
L1:
3.下列程序片段完成什么功能,试采用堆栈的操作实现同样的功能。
XCHG AX,[SI]
XCHG AX,[DI]
XCHG AX,[SI]
4. 下列程序段执行后,DAT2的前5个单元的内容是什么?
DAT1 DB ‘123456789’
DAT2 DB 10 DUP(?)
…
LEA SI, DAT1
LEA DI, DAT2
MOV CX, DAT2-DAT1
ADD SI, CX
DEC SI
LP: MOV AL, [SI]
MOV [DI], AL
DEC SI
INC DI
LOOP LP
HLT
六、程序设计题(每题10分,共计20分)
1.把下列C语言的语句改写成等价的汇编语言程序段(不考虑运算过程中的溢出)
If(a<1 || b/4>10 && c%8==5){
a = 20 + b++;
c = c << 2;
}
else {
a = 21 – (++c);
b--;
}
其中:变量a、b和c都是有符号的16位整形(int)变量
2. 编写程序完成求1+2+3+…+N的累加和,直到累加和超过1000为止。统计被累加的自然数个数从CN字单元,累加和送SUM字单元。
2010-2011汇编语言程序设计期末试卷A卷参考答案
一、填空题(每空1分,共计10分)
1.(1)XOR AX, AX
(2)AND AX, 0
(3)SUB AX, AX
2.NEAR, FAR
3.顺序结构、分支(条件选择)结构、循环结构
4.(1)LES SI,DWV AR
(2)MOV ADDR, OFFSET V AR[4]
二、判断下列指令的正确性。如果错误,请指出错误所在(每题1分,共计10分)
(1)错误!寄存器大小不一致
(2)错误!不能与立即数进行交换
(3)错误!表达式错误
(4)错误!POP指令的对象不能是CS,PUSH可以
(5)错误!第二个操作数,表示移动次数。可以使用CL,但不能是CX (6)错误!乘法指令操作数不可以使用立即数
(7)错误!立即数不能是目的操作数
(8)错误!代码段寄存器CS不能为目的操作数
(9)错误!如果指令的操作数有两个,只能有一个是存储器操作数(10)错误!必须说明目的操作数数据存储类型