南京大学计算机系 《汇编语言》测试卷 2014年7月 (满分50分)
一、单项选择题(20分)
1、若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A. 1400H B. 77F8H C. 0000H D. 0FFFFH
2、设DL=55H,执行指令后能使DL中的数据为0AAH的指令是( ) A. TEST DL, 0AAH B. OR DL, 0AAH C. NEG DL D. XOR DL, 0FFH
3、当SS=9876H, SP=4328H,执行POPF指令后,堆栈顶部的物理地址是( ) A. 9CA8AH B. 9CA90H C. 9CA86H D. 0DB00H 4、DW 10H DUP (2 DUP(6),600H)
上述定义的数据单元中,能构成0606H字存储单元的个数是( ) A. 10H B. 20H C. 1EH D. 0FH
5、用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是( ) A. ADD AX,[BX][SI] B. MOV AX,[BX][SI] C. LEA AX, [BX][SI] D. AND AX,[BX][SI]
6、设AX中有一带符号数8520H,执行SAR AX,1指令后,AX中的值是( ) A. 0C290H B.0A40H C. 4290H D.0C260H
7、循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是( ) A.CX≠0且ZF=1 B.CX≠0且ZF=0
C.CX≠0或ZF=1 D.CX≠0或ZF=0
8、ARRAY DW 6, 9, $+4, 10H, 1,$+4 ┇
MOV AX, ARRAY+4
设变量ARRAY的偏移量是0084H,上述指令执行后AX中的内容是( ) A.0090H B. 0009 C.008CH D.0001H
9、已知AL,BL中为无符号数, 若使AL≤BL时转到标号OK, 哪个程序段不能实现此功能
( )
A. CMP AL,BL B. CMP AL,BL JC OK JBE OK
C. CMP BL,AL D. CMP BL,AL JNB OK JNC OK
10、DATA的定义如为: DATA DW 1234H,现想把12H取入到AL寄存器,可以实现该功能的程
序段是( )
A. MOV AL,BYTE PTR DATA B. MOV AL,BYTE PTR DATA+1 C. MOV AL,LOW DATA D. MOV AX,DATA
二、简答题
1. 阅读程序回答问题(6分)
STRING DB ‘ABCDEFGHI'
MOV AH,1 ;从键盘输入字符1~9之间的一个数字 INT 21H
AND AL,0FH DEC AL
XOR AH,AH
MOV BX,OFFSET STRING ADD BX,AX MOV DL,[BX]
MOV AH, 2 ;显示输出 INT 21H 试回答:(1)上述程序段的功能是什么?
根据从键盘输入的字符1~9,确定在显示器上显示STRING中第几个字符。
(2)如从键盘输入字符 '3',程序显示什么结果? 显示器显示字符C
2.数据段定义:
BUFFER DW d1,d2,d3,┅,dN ;若干个字数据组成的数组 N EQU ($-BUFFER)/2 KEY DW ? 代码段内容:
MOV BX, OFFSET BUFFER MOV CX, N
DEC CX MOV AX, [BX]
MOV KEY, AX GOON: ADD BX, 2
MOV AX, [BX] CMP AX, KEY
JNG NEXT MOV KEY, AX NEXT: LOOP GOON
该程序段的功能是什么?__功能是求出数组中所有位置的最大数。 __________________ (4分)
3、有如下宏定义:
LEAP MARCO COND, LAB JN&COND LAB ENDM
程序中的宏调用如下:
……
CMP AX, BX LEAP Z, THERE MOV DX, 0 JMP RET
THERE:MOV DX, 1 RET: ……
回答以下问题:若AX=1234H,BX=4321H,代码片段执行后DX=____。(4分)
4.数据段有如下定义:
DA1 DB 83H,72H,61H,94H,5AH
则下列指令序列执行后,AL=___00A0H____,CL=__0003H_____。(6分) MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL
三、设一数据段定义如下:
DATA1 DB 10H,20H,30H,40H,50H,60H NUB DB 40H
COUNT EQU $-DATA1-1
现想用数据串操作指令SCASB与重复前缀连用,在DATA1数组中查找NUB单元中存放的元素,若找到,则将CF置1;否则将CF清0,试编写该程序的指令代码片段。(10分)
CODE SEGMENT
ORG 100H
ASSUME CS: CODE,DS: CODE MAIN: JMP START
DATA1 DB 10H,20H,30H,40H,50H,60H NUB DB 40H
COUNT EQU $-DATA1-1 START: MOV AL,NUB MOV CX,COUNT LEA DI,DATA1 CLD
REPNZ SCASB CLC
JNZ NFOUND CMC
NFOUND: INT 20H CODE ENDS
END MAIN