变量定义伪指令是最常使用的汇编语言说明性语句,它的汇编语言格式为:
变量名 变量定义 伪指令初值表
变量名即汇编语句名字部分,是用户自定义的标识符,表示初值表首个数据的逻辑地址。汇编语言使用这个符号表示地址,故有时被称为符号地址。变量名可以没有,这种情况,汇编程序将直接为初值表分配空间,无符号地址,设置变量名是为了方便存取它指示的存储单元。
初值表是用返号分隔的参数,由各种形式的常量和特殊的符号“?”、“DUP”组成。其中“?”表示初值不确定,即未赋初值。多个存储单元如果初值相同,可以用复制操作符DUP进行说明。DUP的格式为:
重复次数 dup(重复参数)
变量定义伪指令有DB、DW、DD、DF、DQ和DT(MASM 6.0开始还对应支持BYTE、WORD、DWORD、FWORD、QWORD和TBYTE,两者功能相同),它们根据申请的主存空间单位分类,如下面所示。不同的变量类型在表达整数时,只是使用的二进制位数(长度)不同,能够表达的数据范围不同,但有符号数都采用补码编码。
1、助记符:DB
变量类型:字节(BYTE)
变量定义功能:分配一个或多个字节单元;每个数据是字节量,也可以是字符串常量字节量表示8位无符号数或有符号数,字符的ASCII码值
2、助记符:DW
变量类型:字(WORD)
变量定义功能:分配一个或多个字单元;每个数据是字量、16位数据字量表示16位无符号数或有符号数、16位段选择器、16位偏移地址
3、助记符:DD
变量类型:双字(DWORD)
变量定义功能:分配一个或多个双字单元;每个数据是双字量、32位数据双字量表示32位无符号数或有符号数、32位段基地址、32位偏移地址
4、助记符:DF
变量类型:三个字(FWORD)
变量定义功能:分配一个或多个6字节单元;6字节量常表示含16位段选择器和32位偏移地址的48位指针地址
5、助记符:DQ
变量类型:四个字(QWORD)
变量定义功能:分配一个或多个8字节单元;8字节量表示64位数据
6、助记符:DT
变量类型:十个字节(TBYTE)
变量定义功能:分配一个或多个10字节单元,表示BCD码、10字节数据(浮点处理单元支持)
除了DB、Dw、DD等定义的简单变,汇编语言还支持复杂的数据变量,例如结构(Structure)、记录(Record)、联合(Union)等。
说点什么