Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: x64core en 7 Diciembre 2011, 10:02 am



Título: DUDA Acerca de STDCALL
Publicado por: x64core en 7 Diciembre 2011, 10:02 am
Hola! :D
Bueno e buscado un poco por ahi y solo encontre que esa instruccion se usa para "limpiar" las llamadas a las apis :P
osea que al usar una api la misma llamada mete los parametros a la pila...
no se si es cierto :P igual queria saber porque se escribe, para que sirve y eso :P
tambien  me e fijado que si no la escribo nopuedo ni ensamblar nada :/ ni un hola mundo ni nada :P
por cierto como hago para meter yo mismo los parametros a la pila y que no lo haga la propia llamda a la pila osea que no sea automatico...


Título: Re: DUDA Acerca de STDCALL
Publicado por: Eternal Idol en 7 Diciembre 2011, 10:46 am
stdcall no es una instruccion, es una convencion de llamada (standard call - de Windows -):

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


Título: Re: DUDA Acerca de STDCALL
Publicado por: x64core en 7 Diciembre 2011, 10:50 am
gracias EI :)
entonces tiene que ir siempre en un W32 :P
entonces no hay forma de insertar manualmente los parametros a la pila :P


Título: Re: DUDA Acerca de STDCALL
Publicado por: Eternal Idol en 7 Diciembre 2011, 10:56 am
No, incluso hay funciones con la convencion de llamada de C (cdecl) en la API de Windows como wsprintf, stdcall al ser el llamado quien limpia la pila solo soporta un numero de parametros fijo. El programa siempre inserta manualmente los parametros en la pila (tanto con stdcall como con cdecl) ... si usas la directa invoke el propio MASM la sustituye por los push correspondientes en forma transparente.