浙江省2002年1月高等教育自学考试汇编语言程序设计试题

作者名:不详 来源:网友提供 06年6月8日

 

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 10 分 )

1.CPU 发出的访问存储器的地址是 ( )

A. 物理地址 B. 偏移地址

C. 逻辑地址 D. 段地址

2. 将高级语言的程序翻译成机器码程序的实用程序是 ( )

A. 编译程序 B. 汇编程序

C. 解释程序 D. 目标程序

3.DEC BYTE PTR [ BX ]指令中的操作数的数据类型是 ( )

A. 字 B. 双字 C. 字节 D. 四字

4. 在下列语句中, BUFFER 称为 ( )

BUFFER DB 01H , 0AH

A. 符号 B. 变量 C. 助记符 D. 标号

5. 串操作指令中,源串操作数的段地址一定在 ( ) 寄存器中。

A. CS B. SS C. DS D. ES

6. 使计算机执行某种操作的命令是 ( )

A. 伪指令 B. 指令 C. 标号 D. 助记符

7. 将数据 5618H 存放在存储单元中的伪指令是 ( )

A. DATA1 DW 1856H

B. DATA1 DB 18H , 56H

C. DATA1 EQU 5618H

D. DATA1 DB 18H , 00H , 56H , 00H

8. 若 AX=3500H,CX=56B8H ,当 AND AX , CX 指令执行后, AX=( )

A. 1400H B. 77F8H C. 0000H D. 0FFFFH

9. 计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是 ( ) 码。

A. BCD 码 B. 二进制码 C.ASCII 码 D. 十六进制码

10. 用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为 ( )

A. 汇编语言 B. 高级语言 C. 机器语言 D. 低级语言

二、填空题 ( 每空 1 分,共 20 分 )

1. 在 8086/8088 汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是 ______ 。

2. 通常所说的计算机系统包括 ________ 和 ________ 两大部分。

3.8086/8088 存储器分四个段,这四个段的段名所对应的段寄存器分别是 ________ 、 ________ 、 ________ 、 ________ 。

4. 现有 AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(31201H)=02H,(31202H)=

40H, 请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位 ZF 、 CF 的值。

A.ADD AX , 1200H ;问 AX=________H ZF=________

B.SUB AX , BX ;问 AX=________H ZF=________

C.MOV AX ,[ BX ] ; 问 AX=________H CF=________

D.NEG WORD PTR [ 1200H ];问 (31200H)=________H CF=________

5. 设 DS=2200H,BX=1000H,SI=0100H ,偏移量 D=0A2B1H ,

试计算出下列各种寻址方式下的有效地址,填入括号中。

A. 使用 D 的直接寻址 ( )

B. 使用 BX 的寄存器间接寻址 ( )

C. 使用 BX 和 D 的寄存器相对寻址 ( )

D. 使用 BX 、 SI 和 D 的相对基址变址寻址 ( )

E. 使用 BX 、 SI 的基址变址寻址 ( )

三、简答题 ( 共 20 分 )

1. 程序在数据段中定义的数组如下: (4 分 )

ARRAY DB ‘ YES IS '

DB 20

DB ‘ DO NOT '

请指出下列指令是否正确 ? 若不正确,错在哪里 ?

A.MOV BX , OFFSET ARRAY

MOV AX ,[ BX+8 ]

B.MOV AX , ARRAY

C.MOV BX , 2

MOV SI , 3

MOV AX , ARRAY [ BX ][ SI ]

D.MOV BX , 2*2

MOV SI , 3

MOV AX , OFFSET ARRAY [ BX ][ SI ]

INC [ AX ]

2. 如 TABLE 为数据段中 0100 单元的符号名,其中存放的内容为 0FF00H ,试问以下两条指令有什么区别 ? 指令执行后, AX 寄存器的内容是什么 ?(3 分 )

MOV AX , TABLE

MOV AX , OFFSET TABLE

3. 对于下面的数据定义,三条 MOV 指令分别汇编成什么 ?(3 分 )

TAB1 DW 10 DUP(?)

TAB2 DB 10 DUP(?)

TAB3 DB ‘ 1234 '

MOV AX , LENGTH TAB1

MOV BL , LENGTH TAB2

MOV CL , LENGTH TAB3

4. 子程序的说明文件中应包括哪几方面的内容 ?(5 分 )

5. 分别指出下列指令中源操作数的寻址方式: (5 分 )

A.MOV SI , 100

B.MOV CX , DATA [ SI ]

C.MOV [ SI ], AX

D.ADD AX ,[ BX ][ DI ]

E.POPHF

四、程序分析 ( 每小题 5 分,共 20 分 )

1. 下列程序段完成什么工作 ?

DAT1 DB 30 DUP(?)

DAT2 DB 10 DUP(?)

MOV CX , 10

MOV BX , 20

MOV SI , 0

MOV DI , 0

NEXT : MOV AL , DAT1 [ BX ][ SI ]

MOV DAT2 [ DI ], AL

INC SI

INC DI

LOOP NEXT

2. 执行下列指令后, AX 寄存器中的内容是什么 ?

START DW 10H , 20H , 30H , 40H , 50H

EE1 DW 3

MOV BX , OFFSET START

ADD BX , EE1

MOV AX ,[ BX ]

3. 试分析下面程序段的功能是什么 ?

CMP AL ,‘ A '

JC OTHER

CMP AL ,‘ Z ' +1

JNC OTHER

JMP LETTER

OTHER : ┇

LETTER : ┇

4. 下面程序段执行完以后, AL 的内容是什么 ?

MOV BX , 00FFH

AND BX , 0FFFH

OR BX , 0F0FH

XOR BX , 00FFH

五、程序设计 ( 每小题 10 分,共 30 分 )

1. 试编写出把 DX 、 AX 中的双字右移四位的程序段。

2. 定义一个数据区,它包含有 23H , 24H , 25H 和 26H 四个字符数据,把这个数据区复制 20 次,并显示出复制结果。

3. 内存自 BUF 单元开始的缓冲区连续存放着 100 个学生的英文分数,编程序统计其中 90 ~ 100 , 60 ~ 89 , 60 以下者各有多少人 ? 并把结果连续存放到自 RESUT 开始的单元中, ( 要求画出程序流程图,各段定义完整 )

浙江省 2002 年 1 月高等教育自学考试

汇编语言程序设计试题参考答案

课程代码: 02321

一、单项选择题 ( 每小题 1 分,共 10 分 )

1.A 2.A 3.C 4.B 5.C

6.B 7.B 8.A 9.C 10.A

二、填空题 ( 每空 1 分,共 20 分 )

1.SCAS

2. 硬件 软件

3.CS DS ES SS

4.A.3200H 0

B.0E00H 0

C.0250H 不影响

D.0B0H 1

5.A.0A2B1H

B.1000H

C.0B2B1H

D.0B3B1H

E.1100H

三、简答题 ( 共 20 分 )

1. A. 正确

B. 数据类型不匹配错

C. 前两条指令正确,第三条数据类型不匹配

D. 前两条正确,后两条不正确,在汇编过程中, OFFSET 操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的,所以第三条指令不正确。第四条指令中, AX 不能作为基址寄存器用。

2. 第一条指令传送的是 0100H 单元中的内容 AX=0FF00H

第二条指令传送的是地址 0100H AX=0100H

3.MOV AX , 10

MOV BL , 10

MOV CL , 1

4. A. 子程序名

B. 子程序的功能

C. 子程序所用到的寄存器、工作单元的情况

D. 子程序的输入参数

E. 子程序的输出参数

5.A. 立即寻址

B. 寄存器相对寻址

C. 寄存器寻址

D. 基址加变址寻址

E. 寄存器寻址

四、程序分析 ( 每小题 5 分,共 20 分 )

1. 把 DAT1+20 存储单元开始的 10 个字节搬到 DAT2 开始的连续 10 个存储单元中。

2.3000H

3. 判断 AL 的内容,若为‘ A '~‘ Z '的大写字母时,程序转 LETTER 处理,否则转 OTHER 处理。

4.0F00H

五、程序设计 ( 每小题 10 分,共 30 分 )

1.MOV CL , 04

SHR AX , CL

MOV BL , DL

SHR DX , CL

SHL BL , CL

OR BL , AH

2.DATA SEGMENT

PATTERN DB 23H , 24H , 25H , 26H

DISPLAY DB 80 DUP( ‘ ' ) ,‘ $ '

DATE ENDS

CODE SEGMENT

CLD

LEA SI , PATTERN

LEA DI , DISPLAY

MOV CX , 80

REP MOVSB

MOV AH , 09H

LEA DX , DISPLAY

INT 21H

RET

CODE ENDS

3.DATA SEGMENT

BUF DB 40H , 64H , 51H …

RESUT DB 3 DUP(0)

DATA ENDS

STACK SEGMENT STACK

DB 100 DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME DS ∶ DATA , ES ∶ DATA , SS ∶ STACK , CS ∶ CODE

START PROC FAR

PUSH DS

MOV AX , 0

PUSH AX

MOV AX , DATA

MOV DS , AX

MOV ES , AX

MOV 、 AX , STACK

MOV SS , AX

LEA SI , BUF

MOV CX , 100

CLD

AO : LODSB

CMP AL , 5AH

JL L60

INC [ RESUT ]

JMP COM

L60 : CMP AL , 3CH

JGE K8960

INC [ RESUT+1 ]

JMP COM

K8960 : INC [ RESUT+2 ]

COM : LOOP AO

RET

START ENDP

CODE ENDS

END START