首页
社区
课程
招聘
[建议]请教看雪网站上的教程是不是有错呀?
发表于: 2008-9-19 20:46 4046

[建议]请教看雪网站上的教程是不是有错呀?

2008-9-19 20:46
4046
就是解密教学》基础知识》第四节浮点指令
FDIV st(i)表示st(0) <- st(0) /t(i)

FDIV st(i),st 表示st(i) <-st(0) /st(i)

FDIVP st(i),st表示 st(i) <-st(0) /st(i),然后执行一次出栈操作

我理解的应该是
fdiv st(i),st表示st(i)<-st(i)/st(0)
fdivp st(i),st表示st(i)<-st(i)/st(0),然后执行一次出栈操作,出栈后的数据放在st(7)

如果错了就更正吧。如果我错了,请高手提示。

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
2
Intel 的指令集中的解释:

FDIV ST(i), ST(0)        Divide ST(i) by ST(0) and store result in ST(i).
FDIVP ST(i), ST(0)        Divide ST(i) by ST(0), store result in ST(i), and pop the register stack.

翻译过来应该是:

FDIV ST(i), ST(0)        ST(i) 除以 ST(0) 并把结果保存在 ST(i).
FDIVP ST(i), ST(0)        ST(i) 除以 ST(0), 把结果保存在 ST(i), 并执行寄存器出栈操作.

关于 FDIVP 的部分解释:

The FDIVP instructions perform the additional operation of popping the FPU register stack after storing the result. To pop the register stack, the processor marks the ST(0) register as empty and increments the stack pointer (TOP) by 1.

翻译过来大致是这样:

FDIVP 指令在保存结果后执行附加的 FPU 寄存器出栈操作。寄存器出栈时,处理器标记 ST(0) 寄存器为空并使堆栈指针 (栈顶) 加 1。
2008-9-19 22:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我不是指这个
我指的是 http://www.pediy.com/tutorial/chap2/Chap2-4.htm页面上写的指令是不是有错。
截图:
上传的附件:
  • 3.JPG (24.91kb,108次下载)
2008-9-20 08:32
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
4
我已经解释过了,有错没错你应该能看得出来。可能你看的教程比较老了,一些东西没改过来。真要了解这些指令,到 Intel 的官方网站去下指令参考手册:
http://www.intel.com/products/processor/manuals/index.htm
2008-9-20 09:32
0
雪    币: 242
活跃值: (418)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
5
翻译过来应该是:

FDIV ST(i), ST(0)  ST(i) 被 ST(0)除 并把结果保存在 ST(i).
FDIVP ST(i), ST(0)  ST(i) 被 ST(0)除, 把结果保存在 ST(i), 并执行寄存器出栈操作.
2008-9-20 11:45
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
6
楼上的翻译不对吧?最简单的是自己用浮点算法写个程序,在OllyDBg中跑一下就很清楚了。不想自己写的,可以在这个帖子:
http://bbs.pediy.com/showthread.php?threadid=22383
中下载源码,随便在里面改改你想测试的浮点指令,编译为调试版本后在 OD 中跑一下就很清楚了。
2008-9-20 14:51
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那个贴图里的计算确实有问题,确实是:

fdiv st(i),st表示st(i)<-st(i)/st(0)
fdivp st(i),st表示st(i)<-st(i)/st(0),,那个教程翻译错误了!
2008-12-16 17:09
0
游客
登录 | 注册 方可回帖
返回
//