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

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

 

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

1. 指令 MOV BYTE PTR [ BX+SI ], 0 目的操作数的寻址方式是 ( ) 。

A. 立即寻址 B. 寄存器寻址

C. 寄存器间接寻址 D. 基址变址寻址

2. 已知 DS=12A0H , ES=22A0H , SS=33A0H , BP=0174H ,指令 MOV AX , DS :[ BP ]源操作数的物理地址是 ( ) 。

A.12A074H B.22B74H

C.33B74H D.12B74H

3. 某数组共有 4 个字,第一个字的物理地址是 1F100H ,则第 4 个字的物理地址是 ( ) 。

A.1F105H B.1F106H

C.1F107H D.1F108H

4. 循环指令 Loop 规定循环次数必定在 ( ) 寄存器中。

A.DX B.DL

C.CX D.CL

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

A.CS B.DS

C.ES D.SS

6. 有数据定义 LIST DB 45H , 36H , 18H , 76H ,执行 MOV AX , WORD PTR LIST+2 ,则 AX=( ) 。

A.3600H B.0036H

C.1876H D.7618H

7. 下列数据定义语句错误的是 ( ) 。

A.ERR DW ‘ ERROR !' B.BUF DB 9 DUP (?)

C.FLAG DB 1 D.DAT1 DW ?

8.8086 的存储器是分段的,定义一个段的伪指令是 ( ) 。

A.PROC 和 ENDP B.NAME 和 END

C.SEGMENT 和 ENDS D.SEGMENT 和 ASSUME

9. 已知 AX=1200H ,能使 CF 置' 1 '的指令是 ( ) 。

A.OR AX,AX B.NEG AX

C.NOT AX D.DEC AL

10. 已知 SP=12EH ,执行段间返回指令 RET 后, SP 的值是 ( ) 。

A.12AH B.12CH

C.130H D.132H

11. 已知 AX=0139H , BL=36H ,执行下列指令序列,则 AX=( ) 。

ADD AL,BL

AAA

A.016FH B.0175H

C.0205H D.0115H

12. 将 AX 中有符号数除以 4 的正确指令序列是 ( ) 。

A.SHR AX , 1 B.SAR AX , 1 C.IDIV 4 D.DIV 4

SHR AX , 1 SAR AX , 1

13. 已知 CS=2300H , DS=2400H ,执行下列指令序列后, CS 和 DS 值是 ( ) 。

PUSH CS

POP DS

A.CS=0 B.CS=2400H C.CS=2400H D.CS=2300H

DS=2300H DS=2300H DS=2400H DS=2300H

14. 用转移表法的多分支程序设计,分支表是建在 ( ) 中。

A. 代码段 B. 数据段

C. 附加段 D. 堆栈段

15. 扩展名是 EXE 的汇编语言可执行程序用 DOS 功能调用返回操作系统指令是 ( ) 。

A.MOV AX,4CH B.MOV AX,4C00H

C.MOV AL,4CH D.MOV AH,2CH

16. 串比较指令 REPE CMPSB 重复比较执行的条件是 ( ) 。

A.CX ≠ 0 并且 ZF=0 B.CX ≠ 0 并且 ZF=1

C.CX ≠ 0 或者 ZF=0 D.CX ≠ 0 或者 ZF=1

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

1. 汇编语言是一种面向 ____________ 的语言,把汇编语言源程序翻译成机器语言目标程序是由 ____________ 完成的。

2.8086/8088 指令系统可分为六大类,其中 ____________ 指令执行后,不会影响状态标志。

3. 在 8086/8088CPU 控制寄存器中, ____________ 寄存器内容始终指向下一条指令的首地址,此时该指令物理地址计算式是 ____________ 。

4. 已知 DS=2000H , BX=0D00H ,( 20D00H ) =0 ,( 20D01H ) =92H ,

( 1 )执行 DEC BYTE PTR [ BX ] ( 20D00H ) =____________ ,

( 2 )执行 ROL WORD PTR [ BX ] ( 20D00H ) =____________ ,( 20D02H ) =____________ 。

5. 已知 AX=1A08H , BX=20F8H ,执行 IMUL BL ,积为 ____________ 。

6. 已知 DS=1A00H , ES=2D00H , SS=1B80H , BX=100H , BP=40H , DI=20H ,

计算下列源操作数物理地址。

( 1 ) OR AX, [ BP ] 物理地址 ____________ ;

( 2 ) SUB AX,ES :[ BX+DI ] 物理地址 ____________ 。

7. 已知 X1 DW 0ABCDH ,若要将 X1 用 DB 定义,原来数据区中的内容保持不变,则

X1 DB____________ , ____________.

8. 已知 BX=1000H ,执行: MOV AX,BX

NEG AX

ADD BX,AX

则程序执行后, AX=____________ , BX=____________ , CF=____________ 。

三、简答题 ( 每小题 4 分,共 12 分 )

1. 有两条无条件转移指令

JMP WORD PTR [ SI ]

JMP DWORD PTR [ SI ]

( 1 )说明两条指令的区别

( 2 )已知 DS=2000H , CS=4000H , SI=1000H ,

( 21000H ) =78H ,( 21001H ) =01H ,( 21002H ) =00H ,( 21003H ) =12H

分别计算这两条转移指令转移目标的物理地址。(要有计算式)

2. 在 8086/8088 指令系统中,按寻址方式分类,指令操作数分成哪几类?各举一例说明。

3. 假设程序中的数据定义如下:

FLD1 DB 10DUP (?)

FLD2 DW 100H , 200H , 300H

FLD3 DB 4 , 5 , 7 , 9

按要求写出合适的指令,每小题只能写一条指令。

( 1 )将 FLD2 的第 4 个字节送入 AL 。

( 2 )用伪指令写出 FLD1 和 FLD2 两者总字节数 COUNT 。

四、程序分析题 ( 每小题 6 分,共 24 分 )

1. TEST SI , 1

JZ NEXT

INC SI

JMP EXIT

NEXT: SUB SI,2

EXIT:

例如, SI=05H ,程序段执行后, SI=____________

SI=08H ,程序段执行后, SI=____________

该程序段的功能是 ____________ 。

2.MOV AL,0FH

MOV BL,0FEH

XOR AL,BL

上述指令序列执行后, AL=____________ , BL=____________

3.ARY DB 10H , 20H , 30H , 40H , 50H , 60H , 70H

CLD

LEA SI , ARY+2

LODSW

程序执行后 AH=____________AL=____________

4. 设寄存器 AL=12H , BL=7AH , CL=0FEH

CMP AL,BL

JAE NEXT

XCHG AL,BL

NEXT: CMP AL,CL

JAE EXIT

XCHG AL,CL

EXIT: HLT

上述程序段执行后 ,AL=____________

程序的功能是 ____________

五、程序填空题 ( 每小题 6 分,共 12 分,每空格只能填一条指令 )

1. 下面程序段判断 CX 和 BX 中的符号位是否相同。如相同, AL 置 0 ,否则 AL 置 -1 。试在空白处填上合适的指令。

____________

AND CX , 8000H

____________

MOV AL , 0FFH

JMP EXIT

ZERO : MOV AL , 0

EXIT :

2. 已知存储器中有一个首地址为 BUF 的 COUNT 个字节数据区。下列程序段把数据区中的每一项加 1 (不考虑溢出),请将程序填写完整。

BUF DB 45H , 79H , 0ABH , ...86H

COUNT EQU____________________

LEA BX,BUF

MOV CX,COUNT

AGN:____________________

INC BX

LOOP AGN

HLT

六、程序设计题 ( 第 1 小题 6 分,第 2 小题 14 分,共 20 分 )

1. 以二进制位串的形式,从高位到底位,在屏幕上显示 AL 中值,例如, AL=6AH ,显示: 01101010 。编写此程序段。

2. 已知在以 BUF 为首地址的数据区中,存放 10 个八位无符号 数,编程求出最大偶数存入 BIG 单元,并将它的偏移地址存入 ADDR 中。

要求源程序格式完整。