精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Delphi>>其他>>Re:在DELPHI中嵌入ASM的时候……

主题:Re:在DELPHI中嵌入ASM的时候……
发信人: nyxi(南野秀一)
整理人: teleme(2004-01-02 16:22:14), 站内信件
【 在 maxun_rootshell 的大作中提到:】
:在DELPHI中嵌入汇编代码的时候还需不需要把寄存器里面的数据压入堆栈?谢谢!
:......
寄存器保存预定
过程和函数必须保持EBX、ESI、EDI和EBP寄存器,但可以修改EAX、EDX和ECX寄存器。当在内嵌汇编程序中实现构造器或析构器时,应确认保持DL寄存器。假设过程和函数被调用时,CPU的方向标记是清除的(相应的一个CLD指令),那么必须返回清除的方向标记。

寄存器的使用
通常,寄存器在asm语句中的使用与那些外部的(external)过程或函数相同。asm语句必须保持EDI、ESI、ESP、EBP和EBX等寄存器,但可以自由修改EAX、ECX和EDX寄存器。在asm语句的入口,BP指向当前栈的帧,SP指向栈顶,SS包含了栈段的段地址,DS包含了数据段段地址。除了ESP和EBP之外,asm语句可以假定在语句入口点没有包含任何寄存器信息。



----
手 

[关闭][返回]