4.2 数据定义伪指令
DB、DW、DD 是定义字节、字和双字变量的伪指令,用于分配内存并初始化变量
数据定义伪指令的格式
- [变量名] 数据定义符 表达式:这是一种基本格式,用于定义变量、分配存储空间,并为变量赋予初始值。
数据定义符
- DB(Define Byte):定义一个字节(8位)大小的变量。
- DW(Define Word):定义一个字(16位)大小的变量。
- DD(Define Double Word):定义一个双字(32位)大小的变量。
表达式类型
- 常量或常量表达式:
- 直接使用数值或算术表达式来定义变量的初始值。
- 例如:
X1 DB 08H
表示定义一个名为X1
的字节型变量,初始值为08H
(16进制)。
- ASCII码字符或字符串:
- 通过字符或字符串来初始化变量。
- 例如:
BUF1 DB 'HELLO'
定义了一个字节型变量BUF1
,存储字符串"HELLO"
的 ASCII 码。
- 问号“?”:
- 表示初值未确定,常用于预留存储空间而不赋初值。
- 例如:
VAR DW ?
表示预留一个字(2字节)大小的存储空间,但不赋初值。
- 重复子句 (DUP):
- 格式为
<font style="color:#DF2A3F;">N DUP(表达式)</font>
,表示重复N
次表达式中的内容。 - 例如:
ARR DB 10 DUP(0)
表示定义一个数组ARR
,包含 10 个字节,所有字节的初值为 0。
- 格式为
- 地址表达式:
- 使用变量名来表示变量的地址。
- 例如:
MOV AX, BUF
将BUF
的地址加载到寄存器AX
中。
示例解析
- X1 DB 08H:
- 定义一个名为
X1
的字节型变量,初始值为08H
。
- 定义一个名为
- BUF DW 01H,02H,03H,04H:
- 定义一个名为
BUF
的字型变量,初始值分别为01H
、02H
、03H
和04H
。
- 定义一个名为
- BUF1 DB ‘HELLO’:
- 定义一个名为
BUF1
的字节型变量,并将字符串"HELLO"
的 ASCII 码存入BUF1
中。
- 定义一个名为
- BUF3 DW ‘AB’:
- 定义一个名为
BUF3
的字型变量,存储字符串"AB"
的 ASCII 码作为初始值。
- 定义一个名为