首页
社区
课程
招聘
[求助]算数指令模拟
发表于: 2007-7-29 13:25 4217

[求助]算数指令模拟

2007-7-29 13:25
4217
IA-32的算术汇编指令,如ADD,会影响CPU的标志位。我使用C对算数指令模拟时,AF和PF的设置遇到困难。
    PF位可以虽然可以通过逐位判断来得到,但比较低效。AF位我暂没有可行实现思路。

    那位兄弟能给点意见不?

    注:忽略使用内联汇编的方法

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1746
活跃值: (287)
能力值: (RANK:450 )
在线值:
发帖
回帖
粉丝
2
内联汇编多方便啊

不用汇编的话,
AF跟进行的运算有关,看低4位是否进位/借位,一言难尽
PF由最后一个字节奇偶效验决定,不会汇编,低效是必须的
2007-7-30 00:32
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
多谢兄弟关注。

CPU是用的硬件引线,计算时即直接可以产生AF位,但我计算的时候实在是没办法考虑。
特别是32的运算,除非我自己拆成8位自己实现。
一个朋友说可以通过原数3/4位和运算结果的3/4位对比来或者,但我实在是没听明白

现在我想用的方法是通过 CF/ZF 位间接取得。依据是在指令解释时,以下跳转
操作码是相同的
0x76;                Jcc;                BE/NA;
0x77;                Jcc;                NBE/A;

JBE    Jump if Below or Equal                CF=1 or ZF=1

兄弟们认为这样有没问题?
2007-7-30 10:13
0
游客
登录 | 注册 方可回帖
返回
//