数据类型与声明形式

Win32汇编中的数据类型

类型描述类型缩写位数字节数浮点数有效位数值范围
字节BYTEDB810…255
有符号字节SBYTEDB81-128…127
WORDDW1620…65535
有符号字SWORDDW162-32768…32767
双字DWORDDD3240…4294967295
有符号双字SDWORDDD324-2147483648…2147483647
远字FWORDDF486
四字QWORDDQ648
十字节TBYTEDT8010
单精度浮点数REAL432461.1810-38…3.401038
双精度浮点数REAL8648152.2310-308…1.7910308
10字节浮点数REAL108010193.3710-4932…1.18104932

注:类型缩写(如用 db 代替 byte)则不能用于局部变量

符号对应的进制
d十进制
t十进制
b十进制
y二进制
q八进制
o八进制
h十六进制

演示:

.386
.model flat, stdcall


include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
include    user32.inc
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib ; 用dubug窗口查看打印输出的信息


.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)
	; 浮点数
	f1 real8 3.14
    f2 real8 3.
    f3 real8 3.14E2 
	
.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
	PrintDouble f1  ;3.14
    PrintDouble f2  ;3
    PrintDouble f3  ;314
	
    ret
end start

输出结果

常量, 赋初值的变量和不赋初值的变量

.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
include    user32.inc
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib ; 用dubug窗口查看打印输出的信息

.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

在.data?中声明的变量,在程序生成时,并不会直接生成给定大小的容量,而是在运行中动态进行分配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值