资源描述
华东交通大学2013—2014学年第二学期考试卷
参考答案与评分标准 (A)卷
课程名称:汇编语言程序设计(A) 课程类别:必、限、任
特别说明:该试卷内容是基于8086微处理器的指令系统
一、选择题(每题2分,共20分)
1. 在计算机中,带符号数都是用( B )表示。
A)原码 B)补码 C)反码 D)ASCII码
2. 以下关于指令指针寄存器IP的说法不正确的是( C )
A)IP是16位寄存器 B)IP的内容由微处理器自动设置
C)程序可以直接访问IP D)程序可以改变IP的内容
3. CPU发出的访问存储器的地址是( A )
A) 物理地址 B)偏移地址 C)逻辑地址 D)段地址
4. 以下关于汇编语言伪指令的说法中,不正确的是( B )
A)当$在指令中表示本条指令的第一个字节地址
B)EQU与=的使用相同
C)指令中操作数类型不匹配时,可以使用PTR属性操作符
D)ASSUME只是通知汇编程序有关段寄存器与逻辑段的关系,并没有给段寄存器赋予实际的初值。
5. 在8086/8088中,一个最基本的总线周期由( D )个时钟周期组成。
A)1 B)2 C)6 D)4
6. 已知data是数据段名,下列指令中语法错误的是( D )
A)MOV BX,seg data B)MOV AX,data C)MOV BX,data D)MOV ES,data
7. 关于DEBUG调试命令的说法中,不正确的是( C )
A) -U是反汇编命令 B)-R是显示当前寄存器内容的命令
C)-D是显示代码段内容的命令 D)-T是单步执行命令
8. 下列关于存储单元的描述正确的是( A )。
A)存储空间地址按字节组织 B)存储空间地址按字组织
C)存储空间地址按双字组织 D)存储空间地址按四字组织
9. 下面指令执行后,改变AL寄存器内容的指令是( D )。
A)TEST AL,02H B)OR AL,AL C)CMP AL,BL D)AND AL,BL
10. 中断向量是( A )。
A)中断服务程序的入口地址 B)中断的返回地址
C)存放中断服务程序入口地址内存单元的地址 D)保护断点的堆栈区堆栈区地址
二、简单填空题(每题2分,共20分)
1. 8086微处理器由总线接口部件和 执行部件 组成,其内部寄存器均为 16 位。
2. 当用户需要访问某个从偶地址开始的字时只需一次访问存储器,而当用户需要访问某个从奇地址开始的字时则需要 二 次访问存储器,所以为加快运行速度,字的存放采用偶地址开始的形式。
3. 汇编语言的操作数有三种类型分别是: 立即数 操作数, 寄存器 操作数和 存储器 操作数。
4. 8086系统内存按字节划分存储单元,每个存储单元有个唯一的编号称为该单元的物理地址,当一个大于8位的数据要在内存存放时,数据的存放规则是:高字节放在 高地址 单元,低字节放在 低地址 单元。
5. 可屏蔽中断请求的中断响应时,CPU需发出 2 个中断应答信号INTA#用于获取 中断类型号 ,找到被响应中断源的中断服务程序的入口地址。
三、 判断改错题(每小题1分,共10分)
1. 判断下表中数据传送指令的正误。(T表示正确,F表示错误)
序号
T或F
1.MOV SS:[BX+DI],AX
T
2.MOV DL,1000H(数据类型不一样,DL是8位,1000H是16位)
F
3.MOV DS,2000H(不能直接对代码段寄存器CS直接赋值)
F
4.MOV [DI],[SI] (两个存储器数据不能直接赋值,需要用寄存器过度)
F
5.MOV WORD PTR[BX],1000H
T
序号
Y或N
1.MOV DA1+1,AX
N
2.MOV DA2+1,AL
N
3.MOV WORD PTR DA1+1,AX
Y
4.MOV DA1,AL
Y
5.MOV DA2,AX
Y
2. 设数据段中已有定义如下:
DA1 DB 12H,34H
DA2 DW 56H,78H
判断右表中语句中操作数类型是否匹配。
(Y表示匹配,N表示不匹配)
四、 写出完成下列操作的指令(每题2分,共10分)
1. 用一条逻辑指令使AX寄存器清0。
AND AX,00H / XOR AX,AX
2. 用一条逻辑指令使CX寄存器的低4位置1,其余位不变。
OR CX,0FH
3. 用一条逻辑指令使BX寄存器的低4位求反,其余位不变。
XOR BX,0FH
4. 用移位指令实现无符号数AX乘8。
MOV CL,3
SHL AX,CL
5. 将AX寄存器中的有符号数,除以BX寄存器中的有符号数。
CWD
IDIV BX
五、 程序填空题(每题2分,共20分)(思路正确酌情给分)
1. 设数据段定义如下:(备注:大写字母‘A’的ASCII码值为41H)
DATA SEGMENT
A DW 1,2,3
B DB ‘ABCDEF’
C DW ‘AB’
D DB 12H,34H,56H
E DW $+5
DATA ENDS
请回答: (1)“MOV AX,C”执行后,AX= 4142 H。
(2) “MOV AX,E”执行后,AX= 0016 H。
(3) 用一条指令将B字符串中的字母“E”送AL: MOV AL,B+4
(4) 用一条指令将D变量中的第2、3个字节内容送AX: MOV AX,WORD PTR D+1
(5) 用一条指令将A变量中的第3字节送AL: MOV AL, BYTE PTR A+2
2. 某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’
┇
MOV BX,0FFSET STRING
LOP: MOV DL,[BX]
MOV AH,02H
INT 21H
INC BX
CMP BYTE PTR [BX],‘$’
JNE LOP
3. 分析下列程序,回答问题。
第 4 页 共 4 页
DATA SEGMENT
A DB 36H
B DB 0DH,0AH,'NUM='
C DB 4 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BL,A
LEA SI,C
MOV CH,2
MOV CL,4
NEXT: ROR BL,CL
MOV AL,BL
AND AL,0FH
CMP AL,9
JNA N
ADD AL,7
N: ADD AL,30H
MOV [SI],AL
INC SI
DEC CH
JNZ NEXT
MOV BYTE PTR[SI],'H'
INC SI
MOV BYTE PTR[SI],'$'
LEA DX,B
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
请回答:(1)该程序的功能是:将A字节变量的数转换成两位十六进制的ASCII码送C中保存,并在显示器上显示从B变量开始的字符串“NUM=36H”。
(2)该程序中指令“ROR BL,CL”的作用是:将BL寄存器中待转换的数的高4位移到低4位中,以便先转换高4位数。
六、 程序设计题(共20分)(设计思路正确酌情给分)
编程实现:把数据段BUFF区中各字符的排列顺序颠倒后放回原BUFF区,已知数据段定义如下。
DATA SEGMENT
BUFF DB 'COMPUTERHFJHSKFSJOVTJWORD'
COUNT EQU $-BUFF
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS,AX
MOV SI, OFFSET BUFF
MOV CX,COUNT
MOV DI,SI
ADD DI,CX
SUB DI,1
MOV AX,CX
MOV DX,0
MOV BX,2
DIV BX
MOV CX,AX
LAB: MOV AL,[SI]
MOV AH,[DI]
MOV [SI],AH
MOV [DI],AL
INC SI
DEC DI
LOOP LAB
MOV AH, 4CH
INT 21H
CODE ENDS
END START
展开阅读全文