Título: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: HelloWorldCodigo en 23 Agosto 2015, 23:28 pm Hola a todos y a todas. El problema que tengo es que al ensamblar un código con NASM con la etiqueta -fwin32 no puede ser ejecutado según Windows a 64 bits. No he probado la aplicación en modo 32 bits (no tengo ningún ordenador de 32 bits), así que no sé si es problema del código.
Código
Este es el comando que he usado: nasm -fwin32 main.asm -o main.exe Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: MCKSys Argentina en 23 Agosto 2015, 23:37 pm Hola!
No responderé a tu pregunta principal, pues no manejo bien nasm. Pero para ésto: ... No he probado la aplicación en modo 32 bits (no tengo ningún ordenador de 32 bits), así que no sé si es problema del código... puedes usar una máquina virtual. VirtualBox es gratis y fácil de usar. Si vas a hacer desarrollos, te conviene tener al menos 1 VM por cada target que quieras. Saludos! Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: Eternal Idol en 23 Agosto 2015, 23:47 pm 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.
Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: HelloWorldCodigo en 23 Agosto 2015, 23:53 pm ¿Y cómo puedo enlazar? Se supone que no necesito usar C Standard
Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: Eternal Idol en 24 Agosto 2015, 00:02 am 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. Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: HelloWorldCodigo en 24 Agosto 2015, 00:05 am He intentado esto encontrado en la web, pero nasm me da un error:
Código
El error junto al comando son los siguientes: nasm -fwin32 main.asm -o main.exe main.asm:10: error: parser: instruction expected main.asm:11: error: symbol `import' redefined main.asm:11: error: parser: instruction expected main.asm:12: error: symbol `import' redefined main.asm:12: error: parser: instruction expected main.asm:13: error: symbol `import' redefined main.asm:13: error: parser: instruction expected También he probado este comando y me sale el mismo error: nasm main.asm -o main.exe Título: Re: (Ayuda) Programa ensamblado en modo 32 bits no se puede puede ejecutar en 64 bit Publicado por: Eternal Idol en 24 Agosto 2015, 00:20 am 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 (http://www.godevtool.com/): GoLink.exe /console /entry:start main.obj kernel32.dll http://therobpoint.blogspot.com/2012/11/asm-how-to-use-windows-api-in-nasm.html |