`
squall
  • 浏览: 46640 次
  • 性别: Icon_minigender_1
  • 来自: wuhan
社区版块
存档分类
最新评论

Delphi 内嵌汇编初探总结

阅读更多

1、在对象中 EAX 寄存器将永远存放 Self 指针,第一个参数放在 EDX,第二个参数放在 ECX,其它的参数放入栈中,如果企图使用类方法做比如系统回调函数的应用将会把 Self 破坏掉,从而产生 AV 类型的异常。

2、在 Delphi 中参数的存放是从右向左的顺序,如果函数或过程在类中 EAX 寄存器中将存放 Self 指针,EDX 存放第一个参数,ECX 存放第二个参数,其它的参数将放入栈中(EBP 中存放栈的基地址,EBP+8为栈中的第一个变量)。如果函数或过程不在类中 EAX 寄存器中将存放第一个参数,其它同上。由此可见,在 Delphi 中永远将前三个参数放入寄存器中达到优化的目的,所以在写函数和过程时参数最好不要超过三个而且最好把常用的参数放到前面。

3、用汇编调用类方法,可以通用 Self 的指针加上类方法的偏移地址来调用,如下:
   //其中 FSomething 为方法指针(相信有 Delphi 基础的人都看得懂)
   add eax, offset(TForm1.FSomething)
   call TMethod[eax].code
   还有更简单的调用方法,如下:
   //这种方法相信编译器在幕后做了不少功夫
   call TForm1.MethodName
   还有一种方法,是在 Delphi 的 CPU 窗口中学到的和第一种方法大同小异,如下
   add edx, offset(TForm1.FSomething)
   call dword ptr [eax]

 2004年7月30日 9:53

分享到:
评论

相关推荐

    delphi内嵌汇编语言

    以上知识点归纳总结了Delphi内嵌汇编语言BASM的一些基本使用规则、最佳实践以及具体的使用示例。这些知识点对于希望在Delphi中高效使用汇编语言的开发者来说,是非常有价值的参考资料。通过了解和掌握这些知识点,...

    用Delphi内嵌汇编实现缷载任意进程的某个DLL.zip

    本主题探讨的是如何使用Delphi编程语言结合内嵌汇编技术来实现这一目标。Delphi是一款强大的RAD(快速应用程序开发)工具,它支持Pascal语法,并且允许开发者在代码中直接插入汇编指令,以实现更高效或者更底层的...

    Delphi 与汇编入门

    初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言 初学 Delphi 嵌入汇编[2] - 汇编语言关键字 初学 Delphi 嵌入汇编[3] - 第一个 Delphi 与汇编的例子 初学 Delphi 嵌入汇编[4] - 寄存器在过程与函数中的使用 ...

    最强大的delphi反汇编工具

    然而,当涉及到软件逆向工程时,"最强大的Delphi反汇编工具" 提供了一个独特且强大的功能,即能够对由Delphi编译的.exe文件进行反汇编。 反汇编工具的主要作用是将已编译的机器代码转换回源代码的近似表示,这对于...

    在Delphi中使用汇编语言..rar

    在Delphi编程环境中,汇编语言的使用是一个高级主题,对于优化代码性能、访问底层硬件功能或解决特定问题时尤其有用。Delphi本身基于Pascal语法,但它内建了对汇编语言的支持,使得开发者可以直接在源代码中嵌入汇编...

    OD的DELPHI版反汇编引擎

    OD的DELPHI版反汇编引擎是一款专为DELPHI编程语言设计的反汇编工具,它允许程序员深入理解程序的内部运作机制,尤其是在逆向工程、软件调试和安全分析等领域发挥着重要作用。反汇编引擎是将机器语言转换为人类可读的...

    Delphi 内嵌 Firebird使用实例

    在"Delphi内嵌Firebird"的实例中,我们可以看到以下关键步骤: 1. **安装和配置Firebird**:`Firebird_ODBC_2.0.5.156_Win32.exe`文件可能是Firebird的ODBC驱动程序安装包。安装后,我们需要在系统ODBC管理器中设置...

    delphi 内嵌谷歌控件

    delphi 内嵌谷歌控件64位

    wxh 《Delphi嵌入式汇编

    ### Delphi嵌入式汇编知识点解析 #### Delphi与嵌入式汇编简介 Delphi作为一种高级编程语言,以其高效、快速的开发环境而著称。它支持面向对象编程,并且内置了大量的类库和组件,使得开发者可以快速构建Windows...

    Delphi汇编例子

    在编程领域,尤其是使用...总结来说,"Delphi汇编例子"是一个关于如何在Delphi开发环境中利用汇编语言提升程序性能的主题。通过学习和实践,开发者可以增强其在系统级别编程的能力,解决复杂问题,并提升软件的效率。

    Delphi+内联汇编,hookapi经典之作编译后7.5k

    代码采用delphi内联汇编的编写方式,hookApi技术的经典之作,并且运用DELPHI mini编译技术,完整功能的dll不超过8k,一切最精简最高效的delphi编程技术,展现delphi汇编编程的魅力。

    delphi经验总结delphi总结

    在本文中,我们将深入探讨Delphi编程的一些关键知识点,总结经验并提供实用技巧。 1. **VCL框架**:Delphi的Visual Component Library(VCL)是一套丰富的组件库,包含用于构建用户界面和实现常见功能的控件。...

    初学 Delphi 嵌入汇编[4

    初学 Delphi 嵌入汇编[4],delphi与汇编混编开发技术系列

    初学 Delphi 嵌入汇编[3]

    初学 Delphi 嵌入汇编[3],delphi与汇编混编开发技术系列

    DeDe Delphi反汇编软件

    将Delphi编译的Exe反汇编成Delphi源程序,效果还不错,dfm可以弄出来,不过 Pas里还是ASM,对于研究破解还是很有用的

    DELPHI中的汇编语言

    汇编语言如何直接在delphi中使用。希望对有用的朋友提供帮助。主要使用在什么方面就要看你自己 了。

    Delphi输出汇编语言的模拟编译器源码..rar

    《Delphi实现汇编语言模拟编译器的深度解析》 在编程世界中,编译器扮演着至关重要的角色,它将高级语言转化为机器可理解的指令。本篇将深入探讨一个独特的项目——使用Delphi编写能输出汇编语言的模拟编译器。通过...

    Coc__delphi.与汇编入门

    与汇编入门》是一本针对初学者的教程,旨在帮助新手了解并掌握Delphi编程语言以及汇编语言的基础知识。在IT领域,掌握这两种语言能够提升程序员对计算机底层机制的理解,从而更好地进行系统级编程和性能优化。 ...

Global site tag (gtag.js) - Google Analytics