Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#871
Si vas a seguir copiando y pegando codigo sin entender nada hasta lograrlo hacelo pero no preguntes a cada paso que des por favor, ya lo estas haciendo en otros lados ademas.

Con el codigo original, que te va a dar una excepcion a menos que arregles la llamada a ReadConsoleInputA, baja el golink:
GoLink.exe /console /entry:start main.obj kernel32.dll


http://therobpoint.blogspot.com/2012/11/asm-how-to-use-windows-api-in-nasm.html
#872
Con un enlazador, yo uso el de Microsoft (link.exe). Hay que aprender a buscar:
http://forum.codecall.net/topic/65222-intro-to-win32-assembly-using-nasm-part-1/

Si queres que te ayuden mejor usa MASM como casi todo el mundo que programa en assembly para Windows.

PD. El cuarto y ultimo parametro de ReadConsoleInputA no puede ser nulo, tiene que ser un puntero a DWORD.
#873
Windows de 64 bits ejecuta programas de 32 bits. El problema es que no estas generando ningun programa en lo absoluto ... apenas llegaste al codigo objeto, necesitas enlazar.
#875
Cita de: Shout en 23 Agosto 2015, 17:46 PM
Y... No podría usar printf?

Aunque yo diria que con "NASM puro" se asume usar los servicios del S.O. para llamar a printf tendria que enlazar (o cargar) una RTL de C, si sabes como hacerlo con NASM (yo siempre trabajo con MASM) explicaselo a HelloWorldCodigo.
#876
Tenes que usar los servicios del S.O. en este caso la API de Windows. Con GetStdHandle obtenes el HANDLE correspondiente (STD_OUTPUT_HANDLE para escribir en consola) y despues podes usar WriteFile (y ReadFile para leer con STD_INPUT_HANDLE).
#877
Tenes que depurarlo, se produjo una excepcion no controlada, hay un bug en tu codigo.
#878
O creas un proyecto o usas la linea de comandos. Por ejemplo en VS 2012, vas a Inicio>>Programas>>Microsoft Visual Studio 2012>>Visual Studio Tools>> y ahi elegis el ambiente para compilar, por ejemplo para 32 bits: VS2013 x86 Native Tools Command Prompt.

Cuando se abra vas al path de tu archivo .cpp y haces:
cl /Zi archivo.cpp

Eso lo compilara, lo enlazara y generara la informacion de depuracion (.PDB).
#880
Solo cambia la direccion cuando lo necesita pero tenes que guardar el retorno en una variable temporal y comprobar que no sea null, cuando no sea null ya podes asignarlo a la variable original sin problema (o sera igual o la memoria original estara liberada).