汇编语言程序设计第3阶段测试题

江南大学现代远程教育 上半年第三阶段测试卷A

考试科目:《汇编语言程序设计》第5章至第7章(总分100分) 时间:90分钟 ______________学习中心(教学点) 批次: 层次: 专业: 学号: 身份证号: 姓名: 得分:

一、单选题(每题3分,共24分)

1.设某子程序使用的返回指令是RET 4,则返回地址为__________

A.CALL指令下面第4条指令的地址 B.CALL指令下面第2条指令的地址 C.(SP+1)和(SP)中存放的地址 D.(SP+5)和(SP+4)中存放的地址

2. 执行CALL FAR PTR SUB1指令后,在堆栈区域中应__________

A.弹出两个字节的内容 B.压入两个字节的内容 C.压入四个字节的内容 D.弹出四个字节的内容

3、对于下列要求,若用汇编语言设计,其中必须采用循环结构来完成的是 A.拆字(将某一存贮单元中的内容拆成两个BCD码) B.比较两个带符号数的大小 C.延时1秒种 D.查表

4、已知中断类型号为0BH,则其中断服务程序入口地址存放在中断矢量表中的地址是 A.CS:000BH B.0000:000BH C.CS:002CH D.0000:002CH

5、在汇编语言程序的开发过程中使用宏功能的顺序是

A、宏定义,宏调用 B、宏定义,宏展开

C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用

6、循环指令LOOPNZ终止循环的条件是 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX≠0,且ZF=0 D、CX≠0,或ZF=1

1

7.已知RET指令是属性为NEAR子程序中的返回指令,执行RET之前SP=100H,执行后SP的内容为 。

A.100H

B.102H

C.98H

D.0FEH

8. 伪指令用来指定宏局部标号。

A.PUBLIC

B.LOCAL C.EXTRN D.ASSUME

二、阅读下列程序,并回答问题(每题10分,共30分) 1. 有下列程序段:

BUF DB 0CH

MOV AL,BUF HECA

CALL FAR PTR HECA . .

PROC FAR CMP AL,10 JC ADD

Kl AL,7

K1: ADD AL,30H MOV DL,AL

MOV INT RET

AH,2 21H

HECA ENDP

问:程序执行后,DL=?屏幕上显示输出的字符是什么?

2、阅读下列程序

MOV AL,38H MOV BL,49H

CALL SUBO INC AL DEC CL ┇ SUBO PROC ADD AL,BL MOV CL,AL

DAA RET

SUBO ENDP

上述程序段运行后,(AL)=_________,(CL)=_________

3、设程序中的MM为一带符号数,阅读下列程序并回答下列问题 程序: DATA SEGMENT BUF1 DB MM BUF2 DB ?

DATA ENDS

2

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START PROC

MOV AX,DATA MOV DS,AX

MOV BX,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV AH,[ BX ] OR AH,AH JZ ZERO JL MINUS MOV AH,01H JMP ASSIGN ZERO:MOV AH,00H JMP ASSIGN MINUS: MOV AH,0FFH ASSIGN:MOV [ DI ],AH

INT 20H ;返回DOS

START ENDP CODE ENDS END START

问题:A:该程序完成的操作是(1);

B:当MM为80H时,程序执行后BUF2单元的内容为(2);

C:若程序中指令JL MINUS改为JNL MINUS且MM为00H时,则程序执行后BUF2单

元的内容为(3)

三、根据题意完善程序(每空3分,共27分)

下面的程序把缓冲区NUM中的十六进制值转换为4个ASCII码,依次放入缓冲区STRING中,并显示输出,请根据题意,完善该程序。 DATA SEGMENT NUM DW 45AFH

STRING DB 4 DUP(?),‘$’ DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’ DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME (1) BEGIN:MOV AX,DATA MOV DS,AX LEA BX,STRING

3

CALL BINHEX LEA (2),STRING MOV AH,9 INT 21H MOV AH,(3) INT 21H BINHEX PROC

MOV AX,NUM MOV DI,BX ADD DI,3 MOV DX,AX MOV CX,4 AGAIN: AND AX,0FH CMP AL,0AH (4)

ADD AL,‘a’―‘0’―0ah ADDZ:ADD AL,‘0’ MOV [ DI ],AL DEC (5) PUSH CX MOV CL,4 SHR DX,CL MOV AX,DX POP (6)

LOOP AGAIN

(7) BINHEX (8) CODE ENDS END (9)

四、编程题(共19分)

编写一个完整程序,如果字节变量 TESTONE和 TESTTWO相等,则调用 ALLSAME子程序在屏幕上显示字符‘*’,否则调用 NOTSAME子程序在屏幕上显示字符‘&’。

4

答 卷

(考试成绩以答卷中给出的答案为准,以下信息需完整填写!)

______________学习中心(教学点) 批次: 层次: 专业: 学号: 身份证号: 姓名: 得分:

一、单选题(每题3分,共24分)

1.设某子程序使用的返回指令是RET 4,则返回地址为__________

A.CALL指令下面第4条指令的地址 B.CALL指令下面第2条指令的地址 C.(SP+1)和(SP)中存放的地址 D.(SP+5)和(SP+4)中存放的地址 答:C

2. 执行CALL FAR PTR SUB1指令后,在堆栈区域中应__________

A.弹出两个字节的内容 B.压入两个字节的内容 C.压入四个字节的内容 D.弹出四个字节的内容 答:C

3、对于下列要求,若用汇编语言设计,其中必须采用循环结构来完成的是 A.拆字(将某一存贮单元中的内容拆成两个BCD码) B.比较两个带符号数的大小 C.延时1秒种 D.查表 答: C

4、已知中断类型号为0BH,则其中断服务程序入口地址存放在中断矢量表中的地址是 A.CS:000BH B.0000:000BH C.CS:002CH D.0000:002CH 答: D

5、在汇编语言程序的开发过程中使用宏功能的顺序是

A、宏定义,宏调用 B、宏定义,宏展开

C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用

答案: C

6、循环指令LOOPNZ终止循环的条件是 A、CX=0,且ZF=0 B、CX=0,或ZF=1

5

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4