Sha*_*ews 7 delphi optimization assembly basm
题
有没有资源学习如何在Delphi中使用汇编?
背景资料
我已经找到并阅读了一些通用程序集和指令集引用(x86,MMX,SSE等).但我发现很难在Delphi中应用这些信息.一般的事情,如如何获得类属性的价值等.
我希望在优化代码时可以选择使用汇编.
我明白:
我有兴趣学习如何在Delphi中使用汇编,因为:
Bob*_*b A 12
这是一个可能有用的资源...
www.guidogybels.eu/docs/Using%20Assembler%20in%20Delphi.pdf
(我想用@Glenn添加评论这个信息,但我被迫使用了答案机制,因为我是这个论坛的新手而且没有足够的代表......)
大多数优化都涉及创建更好的算法:通常可以获得"数量级"速度改进的地方.
x64汇编世界是对x86汇编世界的重大改变.这意味着随着XE2中Delphi中引入x64(很快就会出现),您将不得不两次编写所有汇编代码.
在Delphi中获得更好的算法可以让您完全编写汇编代码.
汇编可以提供帮助的主要领域(但通常巧妙地制作Delphi代码也有很多帮助)是低级别的位/字节错误,例如在进行加密时.另一方面,FastMM(Delphi的快速内存管理器)几乎所有代码都是用Delphi编写的.
正如Macro已经写过的那样:从反汇编代码开始通常是一个好的开始.但是装配优化可以走得很远.
可以用作起点的示例是例如SynCrypto单元,它具有使用Delphi或汇编代码的选项.
我阅读你的帖子的方式,你不是在寻找汇编资源作为资源来解释如何在内存中构建Delphi声明,以便你可以通过汇编程序访问它们.这确实很难找到,但并非不可能.
这是一个很好的资源,我发现它开始理解Delphi如何构造它的声明.由于汇编只涉及自己与离散数据地址CPU定义的数据类型,你只要你了解它,正确地访问它是罚款与任何德尔福结构.
唯一的另一个问题是如何与Delphi过程和函数头交互以获得所需的数据(假设您想使用Delphi内联工具进行汇编),但这只涉及对标准函数调用约定的理解. 这和这将是理解那些为此非常有用.
现在使用实际的汇编程序(链接的OBJ文件)而不是内联汇编程序是另一个主题,它将根据所选的汇编程序而有所不同.您也可以找到相关信息,但如果您有兴趣,也可以随时提出这个问题.
HTH.