广告
淘宝内部优惠券
当前位置: 开发异常方案库» Delphi » 请问各位老师一个问题,关于Delphi和汇编的

请问各位老师一个问题,关于Delphi和汇编的

开发异常方案库  收集整理于:2020-05-02 18:46:00  浏览:66次
我们知道的汇编可以转换成机器码来置入代码中。比如: asm   db $50, $8D, $80, $11, $44, $33, $00, $8D, $80, $11, $44, $33, $00, $58 end; 这就是把一段机器码置入到了代码中。可是目前遇到一个问题就是: 我需要置入一段汇编代码,如果转换成置入代码的话,可能有上万个字节,C++里面可以通过类来引用,请问Delphi遇到这种情况,该怎么弄呢? 感谢!

------网友观点--------------------
直接写进去的话恐怕IDE都会卡死,对delphi又不是太精通,只能来询问各位老师了

------网友观点--------------------
主要就是汇编代码置入这一块实在不知道该怎么办了,难道封装动态库吗?

------网友观点--------------------
老师们在吗????

------网友观点--------------------
直接写汇编指令,如 asm   mov esi, eax   mov edi, edx ... end

------网友观点--------------------
不太了解这部分。但是楼主的例子只是放数据,这个可不是一定要用汇编的喔,随便什么方式应该都是一样的效果。重点是如何获取数据的起始地址

------网友观点--------------------
直接放在资源里,运行时复制到运行地址即可。不过我很好奇的是“C++里面可以通过类来引用”是什么鬼?来个栗子~~~

------网友观点--------------------
我大概明白了,他的意思是字节太多一个个输入效率太差了.  用工具转换一就OK了, 把文件转成delphi的字节数组源代码

------网友观点--------------------
修改一下文件格式,也可以当作类引用。 用masm32等编译成dll,然后正常调用。 或者 去他妈的 996.icu

------网友观点--------------------
这种事情好说啊,干过类似的事情。 直接写个binToPas的工具即可。 把任何代码或者二进制东西转成asm 的DB指令。 当然如果好几MB的数据也是可以编译的,但最好不要打开编辑,会非常卡顿。

------网友观点--------------------
为什么不直接定义一个 INC 文件,把代码组织成一个字节数组常数,用指针来调用里头的入口: const   MyASMData: array [0..$3ffffff] of BYTE = ($XX, $XX ....); 单元程序(xxx.pas) implementation {$INCLUDE MYASM.INC} var   AsmEntry00: Pointer = @MyASMData; ...
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图