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: | ||
%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 | global _funcion | ||
section .data | section .data | ||
section .text | section .text | ||
_funcion: | |||
push ebp | push ebp | ||
mov ebp,esp | mov ebp,esp | ||
sub esp,8 | sub esp,8 | ||
push ebx | push ebx | ||
push edi | push edi | ||
push esi | push esi | ||
;la pila te quedo asi: | ;la pila te quedo asi: | ||
; | ; | ||
Línea 32: | Línea 32: | ||
;|param1| | ;|param1| | ||
;|param2| | ;|param2| | ||
;codigo | ;codigo | ||
pop esi | pop esi | ||
pop edi | pop edi | ||
pop ebx | pop ebx | ||
add esp,8 | add esp,8 | ||
pop ebp | pop ebp | ||
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:08 5 dic 2006
%define local1 [ebp-4] %define local2 [ebp-8] %define param1 [ebp+8] %define param2 [ebp+12] global _funcion section .data 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)