鱼C论坛

 找回密码
 立即注册
查看: 3777|回复: 4

菜鸟请教AND EAX,80000007;和OR EAX,FFFFFFF8;的意义?

[复制链接]
发表于 2014-1-23 19:33:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 学习中-2 于 2014-1-23 19:39 编辑

  请教各位老师,因为想了解一个程序的算法,初学C语言和反汇编,遇到AND EAX,80000007;和OR EAX,FFFFFFF8;这两段代码,想请教这个,80000007和FFFFFFF8有什么特别意义呢?这两条运算的目的是什么呢?谢谢大家!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-23 19:55:59 | 显示全部楼层
取出一些特定的bit位吧,把其他无关的抹杀掉!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-23 20:19:21 | 显示全部楼层
本帖最后由 学习中-2 于 2014-1-23 20:23 编辑

  谢谢版主的答复,我在动态调试时发现EAX是在00000000到0000FFFF之间变化,我想知道这样的两段运算具体能达到什么效果??


00409B1C   .  8BC5          MOV EAX,EBP
00409B1E   .  25 07000080   AND EAX,80000007
00409B23   .  79 05         JNS SHORT 工具.00409B2A
00409B25   .  48            DEC EAX
00409B26   .  83C8 F8       OR EAX,FFFFFFF8
00409B29   .  40            INC EAX
00409B2A   >  74 12         JE SHORT 工具.00409B3E
00409B2C   .  8BC5          MOV EAX,EBP
00409B2E   .  99            CDQ
00409B2F   .  83E2 07       AND EDX,7
00409B32   .  03C2          ADD EAX,EDX
00409B34   .  C1F8 03       SAR EAX,3


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-24 20:05:28 | 显示全部楼层
学习中-2 发表于 2014-1-23 20:19
谢谢版主的答复,我在动态调试时发现EAX是在00000000到0000FFFF之间变化,我想知道这样的两段运算具体能达 ...

位移之类的感觉非常蛋疼,恕我无能为力。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-1 23:42:18 | 显示全部楼层
我只是路过打酱油的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 20:09:10 | 显示全部楼层
OR EAX,FFFFFFF8 #FFFFFFF8 =11111111   11111111   11111111  11111000
意思就是说如果EAX 最后3位是0 那么EAX里的值就是FFFFFFF8,如果EAX 最后3位不是0,那么EAX就是FFFFFFFF,说白了OR就是将某些位置置1。指令执行结果影响SF,ZF和PF标志位。

相反的是AND,说白了就是将某些位置置0。指令执行结果影响SF,ZF和PF标志位。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 10:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表