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。
(2)用一条指令将D变量中的第2个、第3个字节的内容送AX。 (3)用一条指令将A变量中的第3个字节送AL。 (4)“MOV AX,C”执行后,AX= 。 (5)“MOV AL,E”执行后,AL= 。 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)这两个文件的扩展名是什么? (2)这两个文件的功能是什么?
12.简述汇编程序对宏调用作宏展开的过程。 13.设数据段定义如下: DATA SEGMENT A DW 1,2 B DB 3,4 C DB ‘ABCD’ D = $—C E DB 3 DUP(0) DATA ENDS
请回答:(1)画出该数据段在内存中的分配示意图。
(2)变量A、B、C、E的偏移地址各是多少? (3)变量D的值是多少? 14.设数据段定义如下: DATA SEGMENT BUF1 DW 123H BUF2 DB ‘SIMPLE’ BUF3 DW $+4 BUF4 EQU $—BUF1 DATA ENDS
请回答:(1)画出该数据段在内存中的分配示意图。 (2)BUF1、BUF2、BUF3的偏移地址各是多少? (3)BUF4的值是多少?
(4)“MOV AL,BUF2+5”执行后,AL= 。 15.设数据段定义如下: DATA SEGMENT ORG=4
A EQU 100 B DB ‘ABC’,2 C DW 101B D EQU B+4 DATA ENDS
请回答:(1)画出该数据段在内存中的分配示意图。 (2)B、C的偏移地址各是多少?
(3)“MOV AX,D”执行后,AX= 。 五.判断改错题
1.设数据段定义如下,判断各语句是否正确,如有错误则改正。 DATA SEGMENT A DB 123H B DW 23,45678H C DW ‘ABCD’
D DB 100 DUP(‘ABC’) E DB ($—D)/3
DATA END 2.设数据段定义如下: DATA SEGMENT BUF1 DB 2,3 BUF2 DW 3 BUF3 DD 5 BUF4 EQU $—BUF1 BUF5 DB ‘ABCD’ BUF6 DW BUF5 DATA ENDS
请判断下列指令是否正确,如果有错请改正。 (1) MOV AX,BUF1 (2) MOV AL,BUF5 (3) MOV AX,BUF4 (4) LEA BL,BUF2 (5) MOV AX,BUF3
(6) MOV [BX],TYPE BUF3 (7) MOV [BX],WORD PTR BUF3 (8) MOV BUF5,AL (9) MOV BUF6,BUF2 (10)MOV BX,BUF6
3.判断下列伪指令是否正确,如果有错请改正。 (1)DATA SEG ┇ ENDS
(2)CODE SEGMENT ┇ CODE END (3)MA SEGMENT ┇ ENDM
(4)STACK SEGMENT ‘STACK’
(5) A SEGMENT B DW 1 C DB 123H A ENDS
(6)MYNAME SEGMENT PARA ┇
MYNAME ENDS 六.程序分析题
1.分析下列程序,说明程序的功能。 DATA SEGMENT
A DB 18H,34H,05H,06H,09H DB 0AH,0CH,11H,12H,14H B DB 3,4 C DB 2 DUP(0) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,A MOV CX,2
MOV SI,OFFSET B LEA DI,C L: MOV AL,[SI] XLAT
MOV [DI],AL INC SI INC DI LOOP L MOV AH,4CH INT 21H CODE ENDS