汇编语言试卷

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)错误!必须说明目的操作数数据存储类型

相关文档
最新文档