在汇编代码中编写Delphi过程或函数时,必须保存哪些寄存器并在过程结束时将其恢复为原始值?
从(内联)汇编代码调用另一个Delphi过程或函数时,我还能期望其他函数与寄存器有什么关系?哪些寄存器将恢复为原始值,哪些可能不会?
(显然,同样的答案适用于这两个问题)
我假设Delphi 的默认调用约定.我知道这EAX用于32位返回值.而看着SysUtils.pas的汇编代码,似乎EBX,ESI并EDI推而恢复,但有些则没有.但是,我找不到任何关于此的文档.
EAX
EBX
ESI
EDI
delphi assembly cpu-registers basm
assembly ×1
basm ×1
cpu-registers ×1
delphi ×1