在汇编
代码中编写Delphi程序或
函数时,在程序结束时必须保存哪些寄存器并恢复为原始值?
当从(inline)汇编代码调用另一个Delphi程序或函数时,我可以期待其他功能与寄存器有关?哪些寄存器将被恢复到原来的值,哪些不可以?
(显然,同样的答案将适用于这两个问题)
我假设德尔福的default calling convention.我知道EAX用于32位返回值.看看SysUtils.pas中的asm代码,似乎EBX,ESI和EDI被推送和恢复,但其他的则不是.但是,我找不到任何文档.