类型描述 | 类型 | 缩写 | 位数 | 字节数 | 浮点数有效位 | 数值范围 | 字节 | 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 不区分大小写): ; Test4_1.asm .386 .model flat, stdcall include msVCrt.inc includelib msvcrt.lib .data szFmt db ''%d'',13,10,0 ;13,10 是回车与换行, 也可写作: 0dh,0ah v1 dd 10 ;十进制 v2 dd 10d ;十进制 v3 dd 10t ;十进制 v4 dd 10b ;二进制 v5 dd 10y ;二进制 v6 dd 10q ;八进制 v7 dd 10o ;八进制 v8 dd 10h ;十六进制 v9 dd 0ah ;十六进制; 如果第一位不是数字应前置 0 .code start: invoke crt_printf, addr szFmt, v1 ;10 invoke crt_printf, addr szFmt, v2 ;10 invoke crt_printf, addr szFmt, v3 ;10 invoke crt_printf, addr szFmt, v4 ;2 invoke crt_printf, addr szFmt, v5 ;2 invoke crt_printf, addr szFmt, v6 ;8 invoke crt_printf, addr szFmt, v7 ;8 invoke crt_printf, addr szFmt, v8 ;16 invoke crt_printf, addr szFmt, v9 ;10 ret end start
浮点数: ; Test4_2.asm .386 .model flat, stdcall include msvcrt.inc includelib msvcrt.lib .data szFmt db ''%g'', 0DH, 0AH, 0 v1 real8 3.14 v2 real8 3. v3 real8 3.14e-2 v4 real8 3.14E2 .code start: invoke crt_printf, addr szFmt, v1 ;3.14 invoke crt_printf, addr szFmt, v2 ;3 invoke crt_printf, addr szFmt, v3 ;0.0314 invoke crt_printf, addr szFmt, v4 ;314 ret end start
常量、可赋初值的变量、不赋初值的变量: ; Test4_3.asm .386 .model flat, stdcall include msvcrt.inc includelib msvcrt.lib .const ;常量 szFmt db ''%d'',0dh,0ah,0 v1 dd 11 .data ;可赋初值的变量, 其中也可声明不不赋初值的变量 v2 dd 22 v3 dd ? .data? ;不赋初值的变量 v4 dd ? .code start: invoke crt_printf, addr szFmt, v1 ;11 invoke crt_printf, addr szFmt, v2 ;22 invoke crt_printf, addr szFmt, v3 ;0 invoke crt_printf, addr szFmt, v4 ;0 mov eax, 33 mov v3, eax mov eax, 44 mov v4, eax invoke crt_printf, addr szFmt, v1 ;11 invoke crt_printf, addr szFmt, v2 ;22 invoke crt_printf, addr szFmt, v3 ;33 invoke crt_printf, addr szFmt, v4 ;44 ret end start (责任编辑:admin)
|