1.内部数据类型
BYTE 8位无符号整数,B代表字节
SBYTE 8位有符号整数,S代表有符号
WORD 16位无符号整数
SWORD 16位有符号整数
DWORD 32位无符号整数,D代表双字
SDWORD 32位有符号整数,SD代表有符号双字
FWORD 48位整数(保护模式中的远指针)
QWORD 80位(10字节整数),T代表10字节
REAL4 32位(4字节)IEEE短实数
REAL8 64位(8字节)IEEE长实数
REAL10 80位(10字节)IEEE拓展实数
2.数据定义语句
数据定义语句在内存中为变量留出存储空间,并赋予一个可选的名字。
[name] directive initializer [, initializer].....
COUNT DWORD 12345
3.传统数据伪指令
DB 8位整数 DATA BYTE
DW 16位整数 DATA WORD
DD 32位整数或实数 DATA DWORD
DQ 64位整数或实数
DT 80位(10字节)整数
4.定义一个Int数组
MyIntArr DWORD 10H, 20H, 30H, 40H, ....
每次访问的时候 MyIntArr+4*n
C语言中为什么数组名是数组的首地址,就来自于这
5.定义一个字符串
MyString BYTE "Hello World", 0
以’\0’结尾的字符串其实也就是字符数组
6.DUP操作符
DUP操作符使用一个整数表达式作为计数器,为多个数据项分配存储空间。
在为字符串或数组分配存储空间时,这个操作符非常有用,可以初始化或非初始化数据
BYTE 20 DUP(0) ;20个字节 值都是0
BYTE 20 DUP(?) ;20个字节,非初始化
BYTE 4 DUP("stack") ;20个字节
7.声明未初始化数据
.data
SmallArr DWORD 10 DUP(0) ;40字节
.data?
BigArr DWORD 5000 DUP(?) ;20000字节未初始化
.data
SmallArr DWORD 10 DUP(0) ;40字节
BigArr DWORD 5000 DUP(?) ;20000字节
下面比上面编译出来会多出20000字节