На будущее
Регистровое соглашение о вызове
В языке Object Pascal, использующемся в Delphi, по умолчанию действует регистровое соглашение о вызове.
Согласно этому соглашению, первые три 32-разрядных параметра передаются в регистры eax,edx и ecx.
Если функция объявлена следующим образом
function Sum(i1, i2, i3 : integer): integer;
то переменная i1 УЖЕ содержится в регистре eax, i2 -УЖЕ в edx, i3 -УЖЕ в ecx.
Если объявлена процедура
procedure TSomeObject.SomeProc(i1, i2 : integer);
то i1 передается в edx, i2 - в ecx, а в eax передается неявно заданный параметр Self!
Это соглашение верно только для Delphi.
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
Голосовали: | Ivann, 1nd1g0 |