Какие регистры процессора должны быть восстановлены в конце процедуры asm в Delphi

При записи Delphi-процедуры или функции в ассемблерном коде, какие регистры должны быть сохранены и восстановлены до исходного значения в конце процедуры?

При вызове другой процедуры или функции Delphi из (встроенного) кода ассемблера, что я могу ожидать, что эта другая функция будет делать с регистрами? Какие регистры будут восстановлены до их первоначальных значений, а какие нет?

(Очевидно, один и тот же ответ будет применяться к обоим вопросам)

Я предполагаюсоглашение о вызовах по умолчанию Дельфи. я знаю этоEAX используется для 32-битных возвращаемых значений. И, глядя на код asm в SysUtils.pas, кажется, чтоEBX, ESI а такжеEDI выталкиваются и восстанавливаются, а другие нет. Я не могу найти никаких документов по этому поводу, хотя.

Ответы на вопрос(2)

Ваш ответ на вопрос