未见堇开 玉米加农炮 lv.4 2021/03/12 #1 以前在用PVZClass写一个修改僵尸速度的修改器时,为了注入处理浮点数的指令,费了很大功夫查指令表。 从那时起,我就萌生了写一个宏定义集,以此一劳永逸的想法。 为了方便使用PVZClass注入与浮点数操作有关的代码,我特地写了这个宏定义集。 当然,这个集不可能收录全部指令,若有遗漏,还请见谅。 希望能对你(和你的代码)有所帮助。
以前在用PVZClass写一个修改僵尸速度的修改器时,为了注入处理浮点数的指令,费了很大功夫查指令表。 从那时起,我就萌生了写一个宏定义集,以此一劳永逸的想法。 为了方便使用PVZClass注入与浮点数操作有关的代码,我特地写了这个宏定义集。 当然,这个集不可能收录全部指令,若有遗漏,还请见谅。 希望能对你(和你的代码)有所帮助。
未见堇开 玉米加农炮 lv.4 2021/03/12 #2 注意事项: 本贴仅发布宏定义集,以及收录指令的简介。如需详细了解汇编语言对浮点数的处理,请自行搜索。 本宏定义集可以自由转载,包括添加至Github的PVZClass原址。但请注明出处。 本宏定义集包含上百行代码,添加时请注意! 部分机器码可能对应同一指令,本集只收录一种表示形式。 本宏定义集不收录以下指令: 对象为双精度浮点数或者十字节浮点数的指令; 参量中同时含有两个及以上寄存器的指令(如fld dword ptr [eax+ebx])。 名称不同但作用明显一致的指令(如fsub st(0),st(0)和fsubr st(0),st(0)) 。
注意事项: 本贴仅发布宏定义集,以及收录指令的简介。如需详细了解汇编语言对浮点数的处理,请自行搜索。 本宏定义集可以自由转载,包括添加至Github的PVZClass原址。但请注明出处。 本宏定义集包含上百行代码,添加时请注意! 部分机器码可能对应同一指令,本集只收录一种表示形式。 本宏定义集不收录以下指令: 对象为双精度浮点数或者十字节浮点数的指令; 参量中同时含有两个及以上寄存器的指令(如fld dword ptr [eax+ebx])。 名称不同但作用明显一致的指令(如fsub st(0),st(0)和fsubr st(0),st(0)) 。
未见堇开 玉米加农炮 lv.4 2021/03/12 #3 本楼我将发布完整的宏定义集。 在更新时,本楼会被重新编辑。请注意本楼的发布时间。 附件 AsmFunctionEX_out.txt AsmFunctionEX_out.txt 16.2 KB · 查看: 42 最后编辑: 2021/06/17
未见堇开 玉米加农炮 lv.4 2021/03/12 #4 使用方法: 将全部代码复制到pvzclass目录下的AsmFuntions.h(不建议) 或者: 将文件扩展名改为.h后,放到pvzclass目录下。 在pvzclass.h中添加一行: C++: #include "AsmFunctionEX_out.h" 在“解决方案资源管理器”中,右击“AsmFunctionEX_out.h”,点击“包括在项目中” 最后编辑: 2021/06/18
使用方法: 将全部代码复制到pvzclass目录下的AsmFuntions.h(不建议) 或者: 将文件扩展名改为.h后,放到pvzclass目录下。 在pvzclass.h中添加一行: C++: #include "AsmFunctionEX_out.h" 在“解决方案资源管理器”中,右击“AsmFunctionEX_out.h”,点击“包括在项目中”
未见堇开 玉米加农炮 lv.4 2021/06/17 #5 2021/6/17 更新: 将原有的_STO、_STWO等表示浮点寄存器的后缀合并为_ST,用参数b来分辨不同的寄存器。 将过去的_PTR后缀改为_PTR_ARRD后缀,避免与其他_PTR类后缀的混淆。 最后编辑: 2021/06/17
2021/6/17 更新: 将原有的_STO、_STWO等表示浮点寄存器的后缀合并为_ST,用参数b来分辨不同的寄存器。 将过去的_PTR后缀改为_PTR_ARRD后缀,避免与其他_PTR类后缀的混淆。