Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: crack81 en 28 Enero 2016, 19:14 pm



Título: Duda con Proc en Fasm
Publicado por: crack81 en 28 Enero 2016, 19:14 pm
Cuando creas un proc y modificas alguno registro  previamente hay que salvaguardarlos para despues modificarlos y ahora si regresarlos a su valor original
Código
  1. proc funcion
  2.    push ecx
  3.    mov ecx,6
  4.    pop ecx
  5.    ret
  6. endp


pero estuve leyendo y creo que en masm habia una forma para hacerlo automaticamente
sin hacer un push y un pop

no se si en fasm exista lo mismo?


Título: Re: Duda con Proc en Fasm
Publicado por: Eternal Idol en 28 Enero 2016, 19:50 pm
USES es lo que buscas:
http://flatassembler.net/docs.php?article=win32#1.3


Título: Re: Duda con Proc en Fasm
Publicado por: crack81 en 28 Enero 2016, 20:00 pm
Gracias Eternal Idol por la respuesta
pongo el equivalente de uses en masm pero ahora en Fasm es muy similar al de masm

Código
  1. ;salvamos registros con uses y los recuperamos en la salida
  2.   proc sinModificar uses ecx eax
  3.     mov ecx,6
  4.     mov eax,7
  5.     ret
  6.   endp
  7.  
  8.   ;De esta forma los registros pueden ser alterados
  9.   proc modificar
  10.     mov ecx,6
  11.     mov eax,7
  12.     ret
  13.   endp
  14.  
  15.    ;salvamos registros de manera clasica usando push y pop
  16.   proc sinModificarClasico
  17.     push ecx
  18.     push eax
  19.  
  20.     mov ecx,6
  21.     mov eax,7
  22.  
  23.     pop eax
  24.     pop ecx
  25.     ret
  26.   endp