类型描述 |
类型 |
缩写 |
位数 |
字节数 |
浮点数有效位 |
数值范围 |
字节 |
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 个字符.