Diferencia entre revisiones de «Manejo del stack (Organización del Computador II)»
De Cuba-Wiki
Sin resumen de edición |
Sin resumen de edición |
||
Línea 1: | Línea 1: | ||
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 local1 [ebp-4] | ||
%define local2 [ebp-8] | %define local2 [ebp-8] | ||
%define param1 [ebp+8] | %define param1 [ebp+8] | ||
%define param2 [ebp+12 | %define param2 [ebp+12 | ||
global _funcion | global _funcion | ||
section .data | section .data | ||
;datos | |||
section .text | section .text | ||
Línea 44: | Línea 48: | ||
ret | ret | ||
(en la pila donde dice ret se refiere a la direccion de retorno) | (en la pila donde dice ret se refiere a la direccion de retorno) |
Revisión del 02:31 5 dic 2006
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 te quedo asi: ; ;| 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)