汇编语言程序设计第3阶段测试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江南大学现代远程教育上半年第三阶段测试卷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
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
CALL FAR PTR HECA
.
.
HECA PROC FAR
CMP AL,10
JC Kl
ADD AL,7
K1:ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
RET
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为一带符号数,阅读下列程序并回答下列问题
程序:DA TA SEGMENT
BUF1 DB MM
BUF2 DB ?
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START PROC
MOV AX,DA TA
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 中,并显示输出,请根据题意,完善该程序。
DA TA SEGMENT
NUM DW 45AFH
STRING DB 4 DUP(?),‘$’
DA TA ENDS
STACK SEGMENT PARA STACK ‘STACK’
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME (1)
BEGIN:MOV AX,DA TA
MOV DS,AX
LEA BX,STRING
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子程序在屏幕上显示字符‘&’。