2024年1月8日发(作者:)
4.4伪指令及宏指令
1.数据定义及存储器分配伪指令
这类指令有:
DB、DW、
DD、DQ和DT,它们的作用是将所需要的数据放入指定的存储单元中,或者是为程序分配指定数目的存储单元,并根据情况对它们进行初始化。
格式:
「变量名」DB/DW/DD/DQ/DT<表达式>,<表达式>,……;[注释]其中,变量名是任选项,它代表所定义的第一单元的地址。注释也是任选的。
DB:
定义字节变量,其后的每一个表达式占一个字节。
DW:
定义字变量,其后的每一个表达式的值占二个字节,低字节在低地址,高字节在高地址。
DD:
定义双字变量,其后的每一个表达式的值占四个字节,同样低字节在低地址,高字节在高地址。
DQ:
定义四字变量,其后的每一个表达式的值占八个字节,低字节放低地址,高字节放高地址。
DT;定义十个字节,其后的每一个表达式的值占十个字节。一般用于存放压缩的BCD码。
这里的表达式可以是常数、表达式、地址表达式、字符率和数据表格。
1 / 3
下面的例题中,分别说明这几种形式的表达式的应用。
[例
4.11]本例说明数据定义伪指令的使用及存储器的分配方法。已知数据段定义如下,段的起始地址为02000H。
DATA SEMENT
DBYTE DB 10,10H
DWORD0 DW 100,100H
DDWORD DD H
DQWORD DQ 90ABCDEFH
DBYTES DB ’AB’
DWORDS DW ’AB’
DWORDI DW OFFSET DWORD0
DDWORDI DD DDWORD
DATA ENDS
则存储器的分配情况及初始化情况如图4-7所示。
ARR
AY10001ARR
AY2
ARR
AY3
重复xxDUP的应用
2 / 3
用DUP定义重复数据,格式为:
变量名DB/DW/DD/DQ/DT<表达式>DUP(表达式)-0001
---
...--05
...05100
个空出的字单元重复20次共140
个字节DUP左边的表达式表示要重复的次数,右边圆括号中的表达式表示要重复的内容,它可以是下列的内容之一:
(l)一个问号?,表示该单元不初始化,由汇编程序随便预置为什么值;
(2)一个数据项表格;
(3)一个数值表达式或地址表达式。
例12已知数据段定义如下:
DATA SEGMENT
ARRAYI DB 2 DUP(0,1,?)
ARRAYZ DW 100 DUP(?)
ARRAY3 DB 20 DUP(0,1,4DUP
(2),5)
DATA ENDS
则存储器分配图如图4-8所示。
3 / 3


发布评论