Asembler x86/Funkcje/GNU AS: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
rozwinięcie
Linia 62:
===Zachowane rejestry===
Rejestr EIP zostaje wrzucony na stos wtedy, gdy skorzystamy z instrukcji call do przeskoku w miejsce naszej funkcji. W przypadku użycia jmp stos pozostaje bez zmian.
 
Rejestr CS zostaje utrwalony na stosie w tych samych przypadkach co EIP, lecz dodatkowo tylko gdy stosujemy skok daleki tj. call far.
 
Jeśli chodzi o rejestr EBP możemy go zachować sami ręcznie na stosie w celu odzyskania jego poprzedniej wartości. Rejestr EBP wskazuje na swoją zachowaną wartość i w sam w sobie w obrębie działania funkcji jest niezmienny (w przeciwieństwie do SFP - szczytu stosu, który jest ruchomy) i dzięki temu ułatwione jest manipulowanie w obrębie stosu dzięki niemu. Aby odnieść się do dowolnej wartości na stosie jedynie dodajemy/odejmujemy od rejestru EBP odpowiednie wartości.