Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: .:UND3R:. en 8 Julio 2013, 22:24 pm



Título: Duda con RET N
Publicado por: .:UND3R:. en 8 Julio 2013, 22:24 pm
Hola a todos me surge una duda con RET N (4 * número de variables), mi duda surge en que RET N, se debe especificar para la creación de variables locales y parámetros de entrada o solo para variables locales?, saludos.

PD: Siempre cuando se programa sin directivas de alto nivel, ya que estas crean el ret n, de forma automática.

EDIT: Al parecer esta compensación solo se hace cuando la función/procedimiento recibe parámetros, si es así favor de confirmar, saludos.


Título: Re: Duda con RET N
Publicado por: Eternal Idol en 8 Julio 2013, 22:54 pm
http://css.csail.mit.edu/6.858/2012/readings/i386/RET.htm

Si pero depende de la convencion de llamada quien acomoda la pila.

http://en.wikipedia.org/wiki/X86_calling_conventions


Título: Re: Duda con RET N
Publicado por: .:UND3R:. en 8 Julio 2013, 23:03 pm
Claro, me refiero a la conversión de llamada STDCALL, gracias por la info, saludos.


Título: Re: Duda con RET N
Publicado por: The Swash en 9 Julio 2013, 03:16 am
No se si tu duda quedó resuelta pero sólo aplica para cantidad de parámetros recibidos. Para variables locales se manejan con el stack frame (push ebp, mov ebp, esp... o ENTER - LEAVE).

Saludos.


Título: Re: Duda con RET N
Publicado por: .:UND3R:. en 9 Julio 2013, 08:03 am
Todo solucionado, gracias The Swash