8086汇编语言程序格式习题及答案

更新时间:2024-05-08 13:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第4章 汇编语言程序格式 习题

练习题 1 单项选择题

1.下列选项中不能作为名字项的是( C)。 A.FH B.A3 C.3B D.FADC 2.下列指令不正确的是( )。

A.MOV AL,123 B.MOV AL,123Q C.MOV AL,123D D.MOV AL,123H 3.下列指令不正确的是( )。

A.MOV BL,OFFSET A (偏移量16位) B.LEA BX,A C.MOV BX,OFFSET A D.MOV BX,A

4.若定义“BUF DB 1,2,3,4”,执行MOV AL,TYPE BUF 后AL=( )。 A.0 B.1 C.2 D.3

5.若定义“A EQU 100”,执行“MOV AX,A”后,AX=( )。 A.A的偏移地址 B.A单元中的内容 C.100 D.A的段地址

6.若定义“B DW 1,2,10 DUP(0)”,则该伪指令分配( )字节单元。 A.10 B.20 C.22 D.24

7.若定义“C DD 2,4”,则该伪指令分配( )个字节单元。 A.2 B.4 C.6 D.8

8、伪指令是( )规定的汇编说明符,它在源程序汇编时进行说明。 A、DEBUG B、LINK C、MASM (汇编程序) D、EDIT

9.在上机操作过程中,MASM命令执行后,除了生成一个目标文件外,根据选择还可以生成一个( )文件。

A. .LST B. .EXE C. .MAP D. .ASM 10.LINK命令执行后可以生成一个以( )为扩展名的文件。 A.ASM B.EXE C.OBJ D.COM 11.一个段最大可定义( )字节。 A.1M B.64K C.32K D.16K

12.若要求一个段的起始位置能被256整除的单元开始,在定位方式选项中应选( )。 A.BYTE B.WORD C.PARA D.PAGE(页)

13.宏指令与子程序相比,在多次调用时,宏指令调用的目标程序长度比子程序调用的( )。 A.相同 B.长 C.短 D.不定

14.宏指令与子程序相比,子程序调用的执行速度比宏指令的( )。 A.相同 B.快 C.慢 (恢复断点、保护现场、恢复现场) D.不定

15.ASSUME伪指令说明了汇编程序所定义段与段寄存器的关系,它只影响( )的设定。 A.源程序 B.目标程序 C.汇编程序 D.连接程序

16.设A和B为字变量,C为标号,下列指令中不正确的是( )。 A.MOV AX,A (变量) B.MOV AX,B C.JNE A D.JMP C

17.代码段中的语句( )表示该段结束。 A.ASSUME B.CODE ENDS C.START:MOV AX,DATA D.END START

18.过程定义语句以“过程名PROC”开始,以过程名( )结束。 A.ENDS B.ENDP C.ENDM D.END

19.一个段可以放在内存的任何地方,但起始地址应该从一个能被( )整除的单元地址开始。

A.16 B.32 C.64 D.128 20.在数据定义语句中,下列描述不正确的是( )。 A.存放存储单元的地址可以用字节表示 B.存放存储单元的地址可以用字表示 C.存放存储单元的地址可以用双字表示

D.存放存储单元的地址可以用四字表示 2 多项选择题

1.在8086汇编语言中,语句的种类有( )。

A.指令性语句 B.指示性语句 C.汇编语句 D.说明语句 2.在下列的选项中,不能作为名字的有( )。 A.AX B.3MA C.ABCD D.MOV 3.在下列的选项中,作为变量的类型有( )。 A.字节 B.字 C.双字 D.近程 4.在下列的选项中,作为标号的类型有( )。 A.DB B.DD C.NEAR D.FAR 5.在运算符OFFSET后可以是( )。

A.标号 B.变量 C.表达式 D.数字 6.在指令“LEA BX,X”中的X可以是( )。 A.标号 B.变量 C.表达式 D.数字 7.不能分配内存单元的伪指令语句有( )。 A.EQU B.DW C.= D.DD 8.定义一个段的伪指令语句有( )。

A.NAME SEGMENT B.NAME PROC C.NAME ENDP D.NAME ENDS 9.定义一个过程的伪指令语句有( )。

A.NAME SEGMENT B.NAME PROC C.NAME ENDP D.NAME ENDS 10.宏指令与子程序的主要区别在于( )。

A.完成的功能完全不同 B.目标程序的长度不同 C.执行程序的速度不同 D.汇编时处理的方式不同 3 填空题

1.汇编语言的语句有指令语句和 指示性语句 ,宏指令是 指令语句 的另一种形式。 2.标号的三个属性是段地址、 偏移地址 和类型。

3.变量的三个属性是段地址、 偏移地址 和类型。偏移地址 4.标号的类型有 NEAR 和 FAR 。

5.变量的类型有 字节 、 字 、 双字 、四字(八字节)和十字节。 6.等价语句不能重复定义、等号语句 重复定义。 7.等价语句和等号语句 内存单元。

8.语句“MOV BX,OFFSET A”可用 LEA BX,A 一条指令代替。

9.若定义“A DW 1234H”,指令“MOV AL,BYTE PTR A”执行后,AL= 34H 。

10.若定义“B DW 1,2,30 DUP(5)”,则B分配的内存单元数是 64 字节。 11.若定义C DW ?AB?,则“MOV AL,BYTE PTR C”执行后,AL= 。

12.在程序的操作数项中使用的段名、标号名、变量名和符号名都必须在源程序中先 定义 ,否则汇编程序进行汇编时就会 报错 。 13.使用伪指令 和 定义一个段。

14.使用伪指令 和 定义一个过程。利用过程定义语句可以把程序分成小段,以便于 、 、调试和修改。

15.伪指令 表示整个程序结束。

16.宏展开就是用宏定义取代源程序中的宏指令。若实元个数大于变元个数,则多余的实元 。若实元个数少于变元个数,则多余的变元用 代替。

17.汇编语言源程序经 产生目标文件,它 直接在机器上运行,还必须经过 后形成可执行文件。

18.在数据段中使用字符串时,该字符必须用 括起来。当定义含有多个字符的字符串时,只能使用 伪指令。

19.用汇编语言编写的程序称为 ,其扩展名为 。

20.在源程序中只要对某一独立功能的程序段进行一次宏定义,就可以 次调用它。 4 简答题

1.按照下列题目要求写出每小题的伪指令。

(1)将12H、34H、56H、78H存放在字节变量A的存储单元中。 (2)将12、1638H、0E52H存放在字变量B的存储单元中。 (3)将字符串COMPUTER存放在C变量的存储单元中。 (4)将D字节变量的100个单元设置为0。 (5)将D的偏移地址存放在E变量中。 2.设数据段定义如下: DATA SEGMENT BUF1 DB 2,3 BUF2 DW 4,5,6 BUF3 DB 2,100 DUP(0) BUF4 DB ?ABCDE? BUF5 DW BUF3 BUF6 EQU $-BUF3 DATA ENDS

请回答 :(1)该数据段占用的内存有多少字节? (2)BUF5单元中的值是多少? (3)BUF6的值是多少?

(4)执行“MOV AL,BUF4+2”指令后,AL= 。

(5)执行“MOV AX,WORD PTR BUF1”指令后,AX= 。 3.设数据段定义如下: DATA SEGMENT A DW 23,45 B DW ?EF? C = $+5

D DB 10 DUP(?) E EQU $-D

F DW D DATA ENDS

请回答:(1)该数据段占用的内存有多少字节? (2)C的值为多少? (3)E的值为多少?

(4)执行“MOV AX,F”指令后,AX= 。

(5)执行“MOV AL,BYTE PTR B”指令后,AL= 。 4.设数据段定义如下: DATA SEGMENT BUF1 DB 36H,3,2 BUF2 DW 1364H,253H BUF3 DB 30 DUP(?ABC?) BUF4 DW $—BUF3 BUF5 DB 100 DUP(0) DATA ENDS

请回答 :(1)执行“MOV AX,WORD PTR BUF1”后,AX= 。 (2)执行“LEA BX,BUF3”后,BX= 。 (3)执行“MOV CX,BUF4”后,CX= 。 (4)执行“MOV AL,BUF3+2”后,AL= 。 (5)执行“MOV AX,BUF2+1”后,AH= 。 5.设数据段定义如下: DATA SEGMENT

A1 DB 10 DUP(? ?) A2 DW 1234H,5678H,341H A3 DW $—A2 A4 DW A2 A5 DB 7,3,2 DATA ENDS

请回答:(1)用一条指令将A2的偏移地址送BX。 (2)将A1的第6个字节送字符?A?的ASCII码 (3)将A2的第3个字节的内容送AL。 (4)将A2的第3个单元开始的字内容送AX。

(5)用一条伪指令求出A1和A2所占字节数(设伪指令的变量为C)。 6.设数据段定义如下: DATA SEGMENT A DW 2,3

B DB 100 DUP(0) C DD 12345678H D DB $—B E DW B DATA ENDS

请回答:(1)用一条指令将C的第2个字节的内容取出并送AL。 (2)执行完“MOV AL,LENGTH B”后,AL= 。 (3)执行完“MOV AL,TYPE C”后,AL= 。

(4)执行完“MOV AL,LENGTH A”后,AL= 。 (5)执行完“MOV AL,SIZE B”后,AL= 。 (6)执行完“MOV AL,D”后,AL= 。 (7)执行完“MOV BX,E”后,BX= 。 (8)执行完“MOV AL,A+2”后,AL= 。 7.设数据段定义如下: DATA SEGMENT A DW 1,2,3 B DB ?ABCDEF? C DW ?AB?

D DB 12H,34H,56H E = $+5 DATA ENDS

请回答:(1)用一条指令将B字符串中的字符?E?送AL。MOV AL,B+4 (2)用一条指令将D变量中的第2个、第3个字节的内容送AX。 MOV AX,WORD PTRD+1

(3)用一条指令将A变量中的第3个字节送AL。MOVAL,BYTE PTR A+2 (4)“MOV AX,C”执行后,AX= 4241H 。 (5)“MOV AL,E”执行后,AL= 22H 。 8.按下列要求写出数据段DATA的相应内容。 (1)TAB是0~9的ASCII码表。

(2)STR是字符串变量,字符串为COMPUTER。 (3)BUF是100个空格的缓冲区。

(4)COUNT是计算BUF缓冲区中字节数的常量变量。 (5)AD是存放TAB的偏移地址变量。 (6)D是字节变量,数值为15H,2,3 9.按下列要求写出数据段DSEG的相应内容。 (1)STR是存放字符ABCDE的字符串变量。

(2)D是存放十进制BCD数据372,2673,6852的字变量。 (3)BUF是存放10个0的字节缓冲区。

(4)E是存放BUF偏移地址和段地址的双字变量。 (5)F是常量,其值为5。

10.简述宏指令与子程序的主要区别。

11.在操作系统状态下,执行MASM程序对某一汇编语言源程序进行汇编后,除产生目标文件外,通过对答方式还可以产生对应源程序的另外两个文件。请指出: (1)这两个文件的扩展名是什么?.LST和.CRF (2)这两个文件的功能是什么?

12.简述汇编程序对宏调用作宏展开的过程。 13.设数据段定义如下: DATA SEGMENT A DW 1,2 B DB 3,4 C DB ?ABCD? D = $—C

END START

将A字节变量的数转换成2位十六进制的ASCII码送C中保存,并在显示器上显示字符串“NUM=36H” 6.分析下列程序 DATA SGEMENT

A DW 123H,456H,789H B DB 12H,34H,56H,78H C DB 10 DUP(2,3) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI, A LEA DI, C MOV CX,10 L: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP L MOV AH,4CH INT 21H CODE ENDS END START

请回答:C的前5个字节单元中的内容依次是什么? 7.分析下列程序 DATA SEGMENT

A DB 83H,62H,56H,0FAH,67H B DB 0 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX, A MOV CX, 5 L: MOV AL,[BX] CMP AL,100 JAE M

INC BYTE PTR B M: INC BX LOOP L MOV AH,4CH

INT 21H CODE ENDS END START

请回答:(1)该程序完成什么功能? (2)程序运行后,B中的内容是多少? 8.分析下列程序。 DATA SEGMENT A DB 23H B DB 67H C DB 0 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A CMP AL,B JGE L XCHG AL,B MOV A,AL L: MOV C,AL MOV AH,4CH INT 21H CODE ENDS END START

请回答 :(1)该程序完成什么功能?

统计A缓冲区中小于100的无符号数,B中存放统计个数 (2)程序执行后,A、B、C变量中的值各为多少?2 9.宏定义语句如下:

M MACRO X,Y,Z MOV DX,X MOV AH,Y INT Z ENDM

宏调用语句如下:

M BUF1,9,21H M BUF2,9,21H

请写出上述两条宏调用的宏展开语句。 10.宏定义语句如下: W MACRO X,Y,Z LOCAL L LEA BX,X MOV CX,Y MOV AX,0

L: ADD AL,[BX] ADC AH,0 INC BX LOOP L MOV Z,AX ENDM

请回答:执行“W BUF,100,C”指令后宏调用的程序功能是什么?

本文来源:https://www.bwwdw.com/article/4twg.html

Top