江南大学现代远程教育 上半年第三阶段测试卷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