注册 登录
编程论坛 汇编论坛

菜鸟问一个关于masm32的问题

TimeCorner 发布于 2012-08-14 00:13, 954 次点击
.if    @stFindFile.dwFileAttributes &    FILE_ATTRIBUTE_DIRECTORY
请问这句话判断是否是一个目录为什么是用&这个符号?谢谢了。
12 回复
#2
zklhp2012-08-14 00:20
& 逻辑与

1 & 0 = 0
1 & 1 = 1

如果属性和那个东西与之后结果是真 说明相应的位是1 也就是由这个属性了

举个例子

10010 & 10 = 10 说明有这个属性

以上举例都是二进制的


[ 本帖最后由 zklhp 于 2012-8-14 00:22 编辑 ]
#3
TimeCorner2012-08-14 00:26
回复 2楼 zklhp
谢谢了,我知道是逻辑与,可为什么不用==呢?有什么差别呢?
#4
zklhp2012-08-14 00:28
用== 你说应该怎么写
#5
zklhp2012-08-14 00:31
这里的宏是借鉴或者说是照搬了C里的语法 if 是判断是否为真 你写的那个 .if eax == 1 判断的也是true or false 所以 就算你写 也就是类似 a&b == true 不过貌似这样写是错的罢。。 所以你说的写法是比较好的

提醒一下 没问题了记得结题
#6
TimeCorner2012-08-14 00:35
回复 5楼 zklhp
好的,谢谢你。
#7
zklhp2012-08-14 00:39
结题迅速很好啊 我再多说几句 这个用法是很平常的 如果你学过C语言 应该知道这种用法 没学过也不要紧 在这里见过也很好 学东西 要学会举一反三

不知道还看的见看不见 呵呵
#8
信箱有效2012-08-14 01:19
  &是位测试,不是逻辑与。
位测试也叫位与。   逻辑与是 & &
逻辑与是两边都为真,则结果为真,其结果只讲真和假。
 &位测试是将两边的按位进行与操作,所得的是一个真正的数。这个真正的数非0为真 ,为0则为假。

#9
有容就大2012-08-14 08:12
罗云彬的书提过masm32 王爽貌似没介绍~
#10
zklhp2012-08-14 10:43
以下是引用有容就大在2012-8-14 08:12:07的发言:

罗云彬的书提过masm32 王爽貌似没介绍~

这玩意是开发windows32位程序的 王爽讲的是16位
#11
有容就大2012-08-14 11:52
回复 10楼 zklhp
那俺先跟王哥搞16位
#12
爱末流2012-08-17 11:32
回复 8楼 信箱有效
每一个语言的统称也许不同,就你说的逻辑与吧。在32位汇编里面 位测试 指令是 BT  BTC BTR 等等。
#13
zklhp2012-08-17 11:37
以下是引用zklhp在2012-8-14 00:20:42的发言:

& 逻辑与

1 & 0 = 0
1 & 1 = 1

如果属性和那个东西与之后结果是真 说明相应的位是1 也就是由这个属性了

举个例子

10010 & 10 = 10 说明有这个属性

以上举例都是二进制的

不对 我又说错了 不是逻辑与 应该叫 与运算?

逻辑与是 &&

其实都差不多 作用的对象不同罢了
1