制卷人签名: 制卷日期: 审核人签名:: 审核日期: …………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………装…………………… 订……………………线…………………………………………………………………
湘潭大学2008年上 学期2006级《汇编语言程序设计》课程考试试卷
(A1卷) 适用年级专业 计算机科学技术、网络工程
考试方式: 闭卷 考试时间 120 分钟
学院 专业 班级
学号 姓名
题
………………………………………………………………………………………………………………得
一、判断题(每小题1分,共10分)以下各题中,每题给出了一个汇编语言的指令语句或者伪指令语句,请判定其合法性。对合法的语句记“√”,否则记“╳”。记于题后的括号中。
1. score RECORD fvg :1 = 1, abc :5 = 23, cls:3 = 101B ( )
2.ITEM STRUC 40 DUP( < >) ( )
3. LOCAL PRG1, PRG3 , OVERFLOW ( )
4. PURGE LODSB, PUSHA, POPA, OPERATION ( )
5. MOV VARW, [BX + DI + 1234H ] ( )
6. XCHG DS, [ BP + SI + 1056H ] ( )
7. MOV BYTE PTR VARB,DL ( )
8. LES AX, DWORD PTR [ BX + SI + 100 ] ( )
9. SBB CS,WORD PTR WARW ( )
10. HTOASC MACRO OPR,ABC,&DOCP ( )
得
二、选择题(每小题2 分,共 20 分)以下各题中,每题含 4 个选项,其中仅有一个是正确答案,请将正确答案
对应选项的符号(A、B、C或D)记于题后的括号中。
1. 关于“条件汇编语句”,以下陈述中不正确的说法是: ( )
A. 条件汇编语句是“执行语句”。 B. 条件汇编语句是“说明性语句”。
C. 条件汇编语句是伪指令语句。 D. 条件汇编语句由汇编程序执行。
2. 关于“条件汇编语句”,以下陈述中不正确的说法是: ( )
A. 条件伪指令 IFIDN 仅用于宏定义中。 B. 条件伪指令IFNB仅用于宏定义中。
C. 条件汇编语句的功能由目标程序实现。 D. 条件汇编语句以ENDIF 结束。
3. 关于“宏汇编”,以下陈述中不正确的说法是: ( )
A. “宏”的使用始于“宏定义”。 B. “宏”通过执行发挥作用。
C. “宏”通过“宏代换”发挥作用。 D. “宏”可以带有参数。
4. 关于“记录数据”,以下陈述中不正确的说法是: ( )
A. 程序中首先需要说明记录类型 B. RECORD 是伪指令语句。
C. 可通过“名字”访问记录数据的字段。 D. 可用RECORD定义变量。
5. 关于8086的“十进制调整”指令,以下陈述中不正确的说法是: ( )
A. 它们与算术运算指令一起发挥作用。 B. AAD 应出现在除法指令之后。
C. AAD 应出现在程序中相应除法指令之前。 D. AAD 用于未组合BCD码除法。
6. 关于8086的“串处理”指令,以下陈述中不正确的说法是: ( )
A. 可在基本串处理指令前加“重复前缀”。 B. REPNZ 是一个“重复前缀”。
C. 目的串指针固定地为ES:DI。 D. 串处理指令改变标志DF的值。
7. 关于8086的“控制转移”指令,以下陈述中不正确的说法是: ( )
A. 条件转移指令都是“段内转移”的指令。 B. JCXZ是“循环指令”。
C. 条件转移指令都使用“绝对转移”形式。 D. INT 指令属于“控制转移”指令。
8. 关于“数据传送”指令,以下陈述中不正确的说法是: ( )
A. “交换指令”的“源”可以是段寄存器。 B. CS 不能作为“目的寄存器”。
C. 两个操作数不能都是存储器操作数。 D. 立即数不能直接送入段寄存器。
9. 关于8086的“标志寄存器”,以下陈述中不正确的说法是: ( )
A. 标志DF属于“运算结果标志”。 B. IF 属于“状态控制标志”。
C. 可将标志寄存器内容压入堆栈。 D. 可与AH寄存器实现数据传送。
10. 关于8086的“通用寄存器”,以下陈述中不正确的说法是: ( )
A. 数据寄存器都可用作“基址寄存器”。 B. 有8个8位的数据寄存器。
C. SP可被用作保存加法运算结果的寄存器。 D. DX 被称为“数据寄存器”。
得
三、填空题(每空1 分,共20分)根据题意在下列各题的括号内填入正确的内容。要求:字迹清晰、工整;用语准确。
1. 说明结构类型的汇编程序以伪指令语句( )开始、( )结束。
2. 开始一个重复块的伪指令语句是( )、( )和( )。
3. 四条循环指令分别是( )、( )、( )和( )。
4. 中止宏扩展的伪指令是( );清除宏定义的伪指令是( )。
5. 在8086的“字除法”指令中,被除数长( )位,使用( )寻址,结果的“商”存放在寄存器( )中,余数存放在寄存器( )中。
6. 在8086的数据寄存器中,仅有一个寄存器可用在存储器操作数的地址表达式中,该寄存器是( )。
7. 80x86的基本串处理指令有5条,分别是:( )指令、( )指令、( )指令、( )指令和( )指令。
得
四、计算题(每小题4分,共20分)以下各题的每题给出了一个程序片断,请按要求在相应的括号内填入计算机执行程序的相应结果。
1. 程序片断1:
……
MOV AX, 3456H
ADD AL,AH ;(OF = ,SF = )
DAA ;(AL = ,AF = )
……
2. 程序片断2:
……
MOV AX, 6
ADD AL, 4 ;(AF = ,PF = )
AAA ;(AH = ,AL = )
……
3. 程序片断3:
……
MOV AX, 236H
STC
SBB AL, 8 ;(AL = ,AF = )
AAS ;(AL = ,AH = )
……
4. 程序片断4:
……
MOV AX, 946BH
AND AL, AH ;(ZF = ,AL = )
MOV CL, AL
INC CL
SAR AH, CL ;(CF = ,AH = )
……
5. 程序片断5:
……
MOV AX, 9669H
XOR AL, AH :(PF = ,AL = )
MOV CL, AL
ADD CL, 2
ROL AH, CL ;(CF = ,AH = )
……
得
五、程序填空题(2分/空,共10分)下面程序的功能是将输入缓冲区中的一个十进制数字串转换为16位无符号二进制数。程序中留有若干空缺,请将其填补上,实现程序功能。
;数据段
DSEG SEGEMENT
operand DB 5,3,34H,32H,34H,0DH
result DW ?
DSEG ENDS
;代码段
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN:MOV AX, DSEG
MOV DS, AX
MOV BX, operand
MOV AL, [ BX + 1 ]
XOR AH, AH
MOV SI, AX
XOR DH, DH
XOR DI, DI
MOV DL, ;取数字符
AND DL, 0FH
PRG1: DI
CMP DI, SI
JZ PRG2 ;转结束处理
PUSH DX
MOV AX, 10 ;DX=(DX)×10 + dj
MUL DX
MOV DX,
POP AX
MOV AL,
AND AL, 0FH
ADD DL, AL
ADC DH, 0
JMP PRG1
PRG2:MOV result, DX
MOV AX, 4C00H
INT 21H
CSEG ENDS
END BEGIN
得
六、程序改错题(10分)以下程序中存在若干错误。请将错误所在划线指出,并将正确的结果写在相应代码行的后面(在本代码行中)。若误将正确代码行(或其成分)划线,则每错划一处扣1分,直至本题得分为0止(能正确标识错误则记1分/错)。
;程序功能:将一个字节数据中的低4位转换为ASCII码
DSEG SEGMENT
DGHEX DB 5AH
RESULT DB ?
DSEG ENDS
;
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX, DSEG
MOV DS, AX
MOV AX, DGHEX
AND AL, 0FFH
CMP AL, 9
JB PRG1
ADD AL, ’A’- 10
PRG1:ADD AL, 48
MOV RESULT, AL
MOV AL, 4CH
INT 21H
CSEG ENDS
END START
得
七、程序设计题(10分)试题给出了一个欠完整的汇编语言程序,请基于此给定程序,回答所是各有关问题。
说明:(1)程序功能:将指定输入缓冲区中由十进制数字字符组成的数字串转换为一
个16位的无符号二进制数;输入缓冲区的数据组织格式满足DOS 0A 号
系统调用的要求;假定输入缓冲区中的内容已经过检查,确认无错。
(2)参数规定:输入缓冲区首址经堆栈传入子程序;子程序的处理结果经AX
寄存器返回。
(3)要求使用“结构”抽象子程序入口处堆栈栈顶的内容。
问题:(1)给出子程序的详细说明信息;(1分)
(2)画出子程序的程序流程图;(3分)
(3)补充完善子程序的代码。(6分)
已有的子程序代码(含需要补充的内容的说明)如下:
;
…… ;说明“结构”类型(1分)
;
BCDTOB PROC FAR
PUSH BP
MOV BP, SP
…… ;保护寄存器(2分)
MOV DS, [ BP ].STRSEG
MOV BX, [ BP ].STROFF
INC BX
MOV AL, [ BX ]
XOR AH, AH
MOV SI, AX
…… ;清零DX和DI(1分)
INC BX
MOV DL, [ BX ][ DI ]
AND DL, 0FH
BCDTOB1:INC DI
CMP DI, SI
JZ BCDTOB2
PUSH DX
MOV AX, 10
MUL DX
MOV DX, AX
MOV AL, [ BX ][ DI ]
AND AL, 0FH
ADD DL, AL
ADC DH, 0
POP AX
JMP BCDTOB1
BCDTOB2:MOV AX, DX
…… ;恢复寄存器(2分)
RET 4
BCDTOB ENDP