南京大学汇编考试题目及答案2014 下载本文

内容发布更新时间 : 2024/4/19 12:31:48星期一 下面是文章的全部内容请认真阅读。

南京大学计算机系 《汇编语言》测试卷 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