编程论坛
注册
登录
编程论坛
→
汇编论坛
版主,不好意思,又有问题了.
zjjzff1
发布于 2009-10-31 22:36, 774 次点击
汇编里怎么用布尔值?
因为很多条件语句都要用布尔值,所以......
我是这样定义的
BR dd 0
然后用时在mov eax,1;
mov BR,eax
但发现好像不对哦
分都被我问完了......
8 回复
#2
onepc
2009-11-01 01:23
若是要用bool值。直接用TRUE FALSE 或者0或1
#3
onepc
2009-11-01 01:40
而且上面的mov 我这边试正常啊?
#4
onepc
2009-11-01 01:40
而且上面的mov 我这边试正常啊?
#5
东海一鱼
2009-11-01 10:18
上面的代码没有问题。
给一个变量可以直接赋值。这个值可以是立即数或寄存器,但不能是另外一个变量。
因此:
Val dd 0
mov eax,1
mov Val,eax
OR
mov Val,1
都可以
MOV xxx,TRUE
MOV xxx,FALSE
这种形式的前提是你定义过这两个常量如: TRUE equ 1 FALSE equ 0
masm32里面可以直接使用,是因为WINDOWS.INC这个头文件里面已经作了上述定义。
#6
sll0807
2009-11-01 23:59
bool 长度1字节 其值 FALSE 或 TRUE
windows.inc 已经预定义了
bool typedef BYTE
所以
Val bool ? 也是可以的
汇编里按类型长度定义就行
没有那么多的类型汇编里面
#7
zklhp
2009-11-02 16:47
布尔值的true false不过是立即数~
#8
东海一鱼
2009-11-02 17:20
回复 6楼 sll0807
bool typedef BYTE ?? 我以为这个类型定义早已是过去式了。
BOOL typedef DWORD 这个定义几乎覆盖了WIN32的函数集。
俗话说汇编无类型,这话一点没错。但汇编语言不是孤立存在的。
我想MASM32保留bool这个类型的定义可能是为了和某些高级语言的接口兼容性,比如DelPhi中的缺省布尔值类型即为单字节型。而把BOOL声明为longbool.
1