1. 程式人生 > >win32彙編 資料型別及定義

win32彙編 資料型別及定義

複製自萬一老師的部落格:http://www.cnblogs.com/del/archive/2010/04/04/1704218.html

型別描述 型別 縮寫 位數 位元組數 浮點數有效位 數值範圍
位元組 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 個字元.