文档库 最新最全的文档下载
当前位置:文档库 › (完整版)汇编语言程序设计试卷答案

(完整版)汇编语言程序设计试卷答案

(完整版)汇编语言程序设计试卷答案
(完整版)汇编语言程序设计试卷答案

华东交通大学2013—2014学年第二学期考试卷

参考答案与评分标准(A)卷课程名称:汇编语言程序设计(A)课程类别:必、限、任

一、选择题(每题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表示错误)

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)

DA TA SEGMENT

A DW 1,2,3

B DB ‘ABCDEF’

C DW ‘AB’

D DB 12H,34H,56H

E DW $+5

DA TA 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.分析下列程序,回答问题。

DA TA SEGMENT

A D

B 36H

B DB 0DH,0AH,'NUM='

C DB 4 DUP(0)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DA TA

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 B L,CL”的作用是:将BL寄存器中待转换的数的高4位移到低4位中,以便先转换高4位数。

六、程序设计题(共20分)(设计思路正确酌情给分)

编程实现:把数据段BUFF区中各字符的排列顺序颠倒后放回原BUFF区,已知数据段定义如下。

DA TA SEGMENT

BUFF DB 'COMPUTERHFJHSKFSJOVTJWORD'

COUNT EQU $-BUFF

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX, DA TA

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

相关文档
相关文档 最新文档