类型描述 | 类型 | 缩写 | 位数 | 字节数 | 浮点数有效位 | 数值范围 |
---|---|---|---|---|---|---|
字节 | BYTE | DB | 8 | 1 | 0..255 | |
有符号字节 | SBYTE | DB | 8 | 1 | -128..127 | |
字 | WORD | DW | 16 | 2 | 0..65535 | |
有符号字 | SWORD | DW | 16 | 2 | -32768..32767 | |
双字 | DWORD | DD | 32 | 4 | 0..4294967295 | |
有符号双字 | SDWORD | DD | 32 | 4 | -2147483648..2147483647 | |
远字 | FWORD | DF | 48 | 6 | ||
四字 | QWORD | DQ | 64 | 8 | ||
十字节 | TBYTE | DT | 80 | 10 | ||
单精度浮点数 | REAL4 | 32 | 4 | 6 | 1.18*10-38..3.40*1038 | |
双精度浮点数 | REAL8 | 64 | 8 | 15 | 2.23*10-308..1.79*10308 | |
10字节浮点数 | REAL10 | 80 | 10 | 19 | 3.37*10-4932..1.18*104932 |
注: 类型缩写(譬如用 db 代替 byte)不能用于局部变量.
进制表示(其中的 d t b y q o h 不区分大小写):
; Test5_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data v1 dd 10 ;十进制 v2 dd 10d ;十进制(Decimal) v3 dd 10t ;十进制 v4 dd 10b ;二进制(Binary) v5 dd 10y ;二进制 v6 dd 10q ;八进制 v7 dd 10o ;八进制(Octal) v8 dd 10h ;十六进制(Hexadecimal) v9 dd 0ah ;十六进制; 如果第一位不是数字应前置 0 .code start: PrintDec v1 ;10 PrintDec v2 ;10 PrintDec v3 ;10 PrintDec v4 ;2 PrintDec v5 ;2 PrintDec v6 ;8 PrintDec v7 ;8 PrintDec v8 ;16 PrintDec v9 ;10 ret end start
浮点数:
; Test5_2.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .data v1 real8 3.14 v2 real8 3. v3 real8 3.14E2 .code start: PrintDouble v1 ;3.14 PrintDouble v2 ;3 PrintDouble v3 ;314 ret end start
常量、可赋初值的变量、不赋初值的变量:
; Test5_3.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .const ;常量 v1 dd 11 .data ;可赋初值的变量, 其中也可声明不不赋初值的变量 v2 dd 22 v3 dd ? .data? ;不赋初值的变量 v4 dd ? .code start: PrintDec v1 ;11 PrintDec v2 ;22 PrintDec v3 ;0 PrintDec v4 ;0 mov eax, 33 mov v3, eax mov eax, 44 mov v4, eax PrintDec v1 ;11 PrintDec v2 ;22 PrintDec v3 ;33 PrintDec v4 ;44 ret end start
汇编中的标识符(变量名、常量名、过程名、标号)可以使用下面符号:
A-Z a-z 0-9 _ @ $ ?
但第一个字符不能是数字(0-9), 长度不要超过 239 个字符.
转载请注明:懒人档案室 » Win32 汇编[5]: 数据类型与声明