Register

Adam Boduch

register - słowo kluczowe języka Delphi

Dyrektywa register umożliwia określenie konwencji wywołania parametrów dla procedur i funkcji. Trzy pierwsze parametry funkcji lub procedury opatrzonej dyrektywą register będą przekazywane przy użyciu rejestrów procesora, kolejno EAX, EDX, ECX, a kolejne parametry będą wędrowały na stos w kolejności od lewej do prawej.

procedure Foo(A, B, C, D, E: Integer); register;
begin
 
end;

W tak zadeklarowanej procedurze, wartość parametru A znajdzie się w rejestrze EAX, B - EDX, C - ECX, a D i E (w tej kolejności) powędrują na stos.

Register jest domyślną konwencją przekazywania parametrów w Delphi. Zapewnia też największą optymalizację.

Zobacz też:

2 komentarzy

W dephi7 widzę, że przy wywołaniu procedury rejestr EAX jest zawsze kopią ESI , pierwszy i drugi parametr w EDX i ECX , pozostałe na stos. Nastąpiła zmiana ?

"Zapewnia też największą optymalizację" - uproszczenie po feście.