注: 類型縮寫(譬如用 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
匯編中的標識符(變量名、常量名、過程名、標號)可以使用下面符號:
A-Z a-z 0-9 _ @ $
但第一個字符不能是數字(0-9), 長度不要超過 247 個字符.