Manejo del stack (Organización del Computador II)
De Cuba-Wiki
Aca les presento un esquema para la creación de un stack frame, préstenle especial atención a la ubicación en la pila de los parámetros de entrada y de las variables locales tras la creación del mismo:
%define local1 [ebp-4] %define local2 [ebp-8] %define param1 [ebp+8] %define param2 [ebp+12] global _funcion section .data ;datos section .text _funcion: push ebp mov ebp,esp sub esp,8 push ebx push edi push esi ;la pila en este momento: ; ;| esi | <- esp ;| edi | ;| ebx | ;| loc2 | ;| loc1 | ;| ebp | <- ebp ;| ret | ;|param1| ;|param2| ;codigo pop esi pop edi pop ebx add esp,8 pop ebp ret
(en la pila donde dice ret se refiere a la direccion de retorno)