多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] 参考:http://c.biancheng.net/view/3476.html ## 数据类型 汇编器识别一组基本的内部数据类型(intrinsic data type),按照数据大小(字节、字、双字等等)、是否有符号、是整数还是实数来描述其类型。这些类型有相当程度的重叠,例如,DWORD 类型(32 位,无符号整数)就可以和 SDWORD 类型(32 位,有符号整数)相互交换。 下表给出了全部内部数据类型的列表,有些表项中的 IEEE 符号指的是 IEEE 计算机学会出版的标准实数格式。 | 类型 | 用法 | | --- | --- | | BYTE | 8 位无符号整数,B 代表字节 | | SBYTE | 8 位有符号整数,S 代表有符号 | | WORD | 16 位无符号整数 | | SWORD | 16 位有符号整数 | | DWORD | 32 位无符号整数,D 代表双(字) | | SDWORD | 32 位有符号整数,SD 代表有符号双(字) | | FWORD | 48 位整数(保护模式中的远指针) | | QWORD | 64 位整数,Q 代表四(字) | | TBYTE | 80 位(10 字节)整数,T 代表 10 字节 | | REAL4 | 32 位(4 字节)IEEE 短实数 | | REAL8 | 64 位(8 字节)IEEE 长实数 | | REAL10 | 80 位(10 字节)IEEE 扩展实数 | ## 数据定义语句 数据定义语句(data definition statement)在内存中为变量留岀存储空间,并赋予一个可选的名字。数据定义语句根据内部数据类型(上表)定义变量。 数据定义语法如下所示: ``` [name] directive initializer [,initializer]... ``` 下面是数据定义语句的一个例子: ``` count DWORD 12345 ``` 其中: * 名字:分配给变量的可选名字必须遵守标识符规范。 * 伪指令:数据定义语句中的伪指令可以是 BYTE、WORD、DWORD、SBTYE、SWORD 或其他在上表中列出的类型。此外,它还可以是传统数据定义伪指令,如下表所示。 | 伪指令 | 用法 | 伪指令 | 用法 | | --- | --- | --- | --- | | DB | 8位整数 | DQ | 64 位整数或实数 | | DW | 16 位整数 | DT | 定义 80 位(10 字节)整数 | | DD | 32 位整数或实数  |   |   | 数据定义中至少要有一个初始值,即使该值为 0。其他初始值,如果有的话,用逗号分隔。对整数数据类型而言,初始值(initializer)是整数常量或是与变量类型,如 BYTE 或 WORD 相匹配的整数表达式。 如果程序员希望不对变量进行初始化(随机分配数值),可以用符号 ? 作为初始值。所有初始值,不论其格式,都由汇编器转换为二进制数据。 初始值 0011 0010b、32h 和 50d 都具有相同的二进制数值。