汇编语言程序设计试卷及答案2010-2011学年
> 2010—2011学年 第1学期 期末试卷 考试形式:闭卷 考试时间: 120 分钟 系别、班级: 姓名: 学号: 一、单项选择题:(本题共20小题,每小题1分,共20分) 1. 设DS=5788H,偏移地址为94H,该字节的物理地址是 。 (A) 57974H (B) 57914H (C) 5883H (D) 58ECH 2. IP指令指针寄存器是属于 。 (A) 通用寄存器 (B) 段寄存器 (C) 变址寄存器 (D) 控制寄存器 3. 下面有语法错误的指令是 。 (A) ADD AL,AH (B) ADD [BX+3],AL (C) ADD AH,[DI] (D) ADD [BX],DA1(DA1是变量名) 4. 完成对DX的有符号数除以2的指令是 。 (A) IDIV 2 (B) SAR DX,1 (C) DIV 2 (D) RCR DX,1 5. 使进位位置1的指令是 。 (A) CLC (C) STC (B) CMC (D) NOP 6. 设AL=-100,要使AL=100应执行的指令是 。 (A) NEG AL (B) NOT AL (C) INC AL (D) DEC AL 7. 在条件转移指令中,结果为负数则转移的指令是 。 (A) JNS (B) JZ (C) JS (D) JC 8. 下面的XCHG指令中,语法正确的是 。 (A) XCHG AL,DS (B) XCHG BH,[BX] (C) XCHG AL,OFH (D) XCHG BUF1,BUF2
9. 一条指令中目的操作数不允许使用的寻址方式是 。
(A) 寄存器寻址 (B) 立即数寻址
(C) 变址寻址 (D) 直接寻址
10. 设SP=1FFFH,执行下列指令后,SP寄存器的值是 。
┇
POPF
PUSH BX
PUSH BX
┇
(A) 2000H (B) 2002H
(C) 1FFCH (D) 1FFEH
11. LES SI ,[2000H]指令的全部功能是 。
(A) 把地址2000H送SI
(B) 把地址2000H字单元的内容送SI
(C) 把地址2000H字单元内容送SI,把2002H字单元内容送ES
(D) 把地址2000H字单元内容送ES,把2002H字单元内容送SI
12. 设AL=04H,CL=0F8H,执行MUL CL指令后,结果是 。
(A) AX=0032H (B) AX=00E0H
(C) AX=03E0H (D) AX=0FFE0H
13. 设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5
个字节单元内容分别是44H,43H,42H,41H。执行REPNZ SCASB指令后,正确的结果是 。
(A) DI=0104H,CX=0000H (B) DI=0103H,CX=0001H
(C) DI=0102H,CX=0002H (D) DI=0101H,CX=0003H
14. 某数据段如下:
DATA SEGMENT
ORG 20H
X DB 12H,'AB'
Y DW 789AH
DATA ENDS
Y单元的偏移地址是 。
(A) 20H
(C) 22H (B) 21H (D) 23H
15. 下面指令语句中,语法正确的是 。
(A) INC [BX] (B) CMP [BX],20
(C) JMP FAR OPR (D) MOV WORD PTR[BX],20
16. DATA SEGMENT
DA1 DB 30 DUP(?)
DA2 DW 1456H,789AH
DA3 DW DA2
DATA ENDS
┇
┇
MOV BX,DA3
上述指令执行后,BX中的内容是 。
(A) 30 (B) 31
(C) 32 (D) 21H
17. 数据定义如下: BUF1 DB 10
BUF2 DW 20DUP(?)
实现将BUF1单元的内容与BUF2开始的条三个字节单元内容相比较的指令是 。
(A) CMP BUF1,BYTE PTR BUF2+3
(B) MOV AL,BUF1
CMP AL,BUF2+2
(C) MOV AL,BUF1
CMP AL,BYTE PTR BUF2+2
(D) MOV AL,BUF1
CMP AL,BUF2+3
18. 执行循环指令 LOOPNZ END0 时,若要使其重复执行,应满足的条件是 。
(A) CX≠0且ZF=0 (B) CX≠0或ZF=0
(C) CX≠0且ZF=1 (D) CX≠0或ZF=1
19. 当一个程序使用DOS系统功能调用退出用户程序时,在编写INT 21H指令前,
应选用的指令是 。
(A) MOV AH,01H (B) MOV AX,4CH
(C) MOV AH,4CH (D) RET
20. 用CMP指令对两个无符号数进行A-B的比较后,用A=B或A>B,则分别产生转
移,这种情况应选择的条件转移指令是 。
(A) 先用JE指令,再用JNC指令
(B) 先用JNC指令,再用JE指令
(C) 上述两条条件转移指令(JE和JNC)无先后次序
(D) 用上述两条条件转移指令不能完成上述功能要求
二、填空题:(本题共14空,每空1分,共14分)
1. 在微型计算机中,系统总线将CPU、存贮器和I/O设备连接起来,传送各部分
之间的信息。系统总线包括有数据总线, 和 。
2. 用 寄存器与 段寄存器联合确定下一条指令的物理地址。
3. 清除AX寄存器的一条逻辑指令是 或 。
4. 汇编语言源程序中的语句有三种类型,它们是 语句, 语句
及 语句。
5. 设数据段的段地址为2A66H,其中某数组中第5个字节存储单元的物理地址为
2A835H,试问该数组中首字节的偏移地址是 。
6. 数据定义如下:
X1 DB 10H,100,-1
X2 DW 10H,100,-1
X3 DD ?
COUNT EQU X3 - X1
变量COUNT的值是 ,其表示的意义是 。
7. 执行指令 MOV AX,0
MOV AL,09H
ADD AL,4
若要获得结果AX=0103H,则在ADD指令之后,加一条 指令,若要获得结果AL=13H,在ADD指令之后加一条 指令。
三、简答题:(本题共3小题,每小题3分,共9分)
1. DA1 DB 20H DUP(?)
DA2 DW 10H,45H,7856H
请用两种方法,分别只用一条指令实现将DA1数据区中数据个数送入CX。
2. 用三种不同方法实现在字存储单元DB1中存储2000H的内容。
3. 已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,
试分别指出下列各指令中存储器操作数据的物理地址。
(1)MOV AL,[BP+20H]
(2)MOV [BX+DI-80H],AL
(3)MOV BL,ES:[SI+40H]
四、程序分析题:(本题共5小题,每小题6分,共30分)
1. XOR AL,AL
MOV AH,AL
ADD AH,9
JZ NEXT
XCHG AH,AL
JMP K1
NEXT: MOV AH,0FFH
K1: ………
上述程序运行后,AH= ,AL= 。
2. XOR AL,AL
INC AL
NEG AL
INC AL
MOV BL,7FH
ADC AL,BL
上述程序段运行后,AL= ,CF= 。
3. 已知 AX=1234H
MOV BX,AX
NEG BX
ADD AX,BX
执行上述三条指令后,AX= ,BX= 。
4. BUF1 DB 41H,42H,43H,44H,45H,46H
BUF2 DB 6 DUP(?)
┇
MOV SI,OFFSET BUF1
MOV DI,OFFSET BUF2
MOV CX,6
LOP: MOV AL,[SI]
SUB AL,7
AND AL,0FH
MOV [DI],AL INC SI INC DI LOOP LOP
试回答:(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?
(2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。
5. BUFF DB 'ABD SA……XYZ'
CONT EQU S-BUFF
┇
CLD
LEA DI,BUFF
MOV CX,CONT
MOV AL,ˊ$
XOR DX, DX
NEXT: REPNZ SCASB
CMP CX, 0
JZ K1
INC DX
JMP NEXT
K1: ┉┉
上述程序段执行后,DX中的值表示的意义是什么?。
五、程序填空题:(本题共2小题,每小题6分,共12分)
1.下面程序段的功能是把DA1数据区的数0~9转换为对应的ASCII码。试完善本程序段。(每一空白处只填一条指令)
DA1 DB OOH,01H,02H,03H,04H,05H,06H,07H,08H,09H ASCI DB 10 DUP(?)
CUNT =ASCI-DA1
LEA SI,DA1
LEA DI,ASCI
LOP1: MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP LOP1
2.设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。试完善本程序。(每一空白处只填一条指令)
DATA SEGMEMT
A DB 1,2,3,4,5,6,7,8,9,0AH
ORG 0010H
B DB 0AH,9,8,7,6,5,4,3,2,1
DATA ENDS
┇
MOV SI,0
MOV DI,0
MOV CX,10
MEXT: MOV AL,A[SI]
MOV BL,B[DI]
INC SI
INC DI
LOOP NEXT
六、程序设计题:(本题共2小题,第1小题5分,第2小题10分,共15分)
1.设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令): X YX
X0X0
2.编写一个完整的源程序,将BUF字节单元存放的两位BCD码,转换成2个字节的ASCII码,并分别存放在ASC和ASC+1字节单元中
例如:(BUF字节单元)=58H,那么(ASC字节单元)35H,(ASC+1字节单元)=38H
(参考答案)
------------------------------------------------------------------------------------------------------------------------------------------