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 _probar
  global _funcion
 
  section .data  
  section .data  
 
  section .text  
  section .text  
 
  _probar:  
  _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)