x86 AND 指令
在x86 64位中,我有以下指令:
and $0xf, %eax
%eax前后的内容仍然是4。这怎么可能? ANDing 100 & 1111
应该生成 1100
,即 12,而不是 4。
In x86 64-bit, I have the following instruction:
and $0xf, %eax
The contents of %eax before and after remains 4. How is that possible? ANDing 100 & 1111
should result in 1100
which is 12, and not 4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从什么时候开始
0100 & 1111 = 1100?
Since when is
0100 & 1111 = 1100
?将
100
视为0100
,您可以看到0100 & 1111
显然是0100
。Think of
100
as0100
and you can see that0100 & 1111
is clearly0100
.不——你犯了一个错误。 100& 1111 = 100。
Nope - you're making a mistake. 100 & 1111 = 100.