dlaczego używać ebp w funkcji prolog / epilog?
Jakiś czas temu eksperymentowałem z pisaniem procedur montażowych i łączeniem ich z programami C i odkryłem, że mogę po prostu pominąć standardowy epilog prologu C-call
push ebp
mov ebp, esp
(sub esp, 4
...
mov esp, ebp)
pop ebp
po prostu pomiń to wszystko i podaj tylko przezesp
, lubić
mov eax, [esp+4] ;; take argument
mov [esp-4], eax ;; use some local variable storage
Wydaje się, że działa całkiem dobrze. Dlaczego ten ebp jest używany - może adresowanieebp
szybciej czy co?