【持续更新】PVZClass 浮点数汇编指令 宏定义集

未见堇开

毁灭菇 lv.3
以前在用PVZClass写一个修改僵尸速度的修改器时,为了注入处理浮点数的指令,费了很大功夫查指令表。
从那时起,我就萌生了写一个宏定义集,以此一劳永逸的想法。

为了方便使用PVZClass注入与浮点数操作有关的代码,我特地写了这个宏定义集。

当然,这个集不可能收录全部指令,若有遗漏,还请见谅。

希望能对你(和你的代码)有所帮助。
 

未见堇开

毁灭菇 lv.3
注意事项:
  1. 本贴仅发布宏定义集,以及收录指令的简介。如需详细了解汇编语言对浮点数的处理,请自行搜索。
  2. 本宏定义集可以自由转载,包括添加至Github的PVZClass原址。但请注明出处。
  3. 本宏定义集包含上百行代码,添加时请注意!
  4. 部分机器码可能对应同一指令,本集只收录一种表示形式。
本宏定义集不收录以下指令:
  1. 对象为双精度浮点数或者十字节浮点数的指令;
  2. 参量中同时含有两个及以上寄存器的指令(如fld dword ptr [eax+ebx])。
  3. 名称不同但作用明显一致的指令(如fsub st(0),st(0)和fsubr st(0),st(0)) 。
 

未见堇开

毁灭菇 lv.3
本楼我将发布完整的宏定义集。

在更新时,本楼会被重新编辑。请注意本楼的发布时间。
 

附件

  • AsmFunctionEX_out.txt
    16.2 KB · 查看: 20
最后编辑:

未见堇开

毁灭菇 lv.3
使用方法:
  • 将全部代码复制到pvzclass目录下的AsmFuntions.h(不建议)
或者:
  1. 将文件扩展名改为.h后,放到pvzclass目录下。
  2. 在pvzclass.h中添加一行:
    C++:
    #include "AsmFunctionEX_out.h"
  3. 在“解决方案资源管理器”中,右击“AsmFunctionEX_out.h”,点击“包括在项目中”
 
最后编辑:

未见堇开

毁灭菇 lv.3
2021/6/17 更新:
  1. 将原有的_STO、_STWO等表示浮点寄存器的后缀合并为_ST,用参数b来分辨不同的寄存器。
  2. 将过去的_PTR后缀改为_PTR_ARRD后缀,避免与其他_PTR类后缀的混淆。
 
最后编辑:
顶部