我的系统上安装了NASM和Dev-Cpp 。 Dev-cpp带有LD (GNU Linker)。 我是新来的汇编代码和从汇编程序文件创build一个32位Windows可执行文件的过程。 我试着用这个:
nasm -f win32 ass.asm nasm -o ass ass.o
我没有成功使用这些命令来创build一个可执行文件。 什么是正确的方式来组装(与NASM )和链接来生成将在32位Windows上运行的可执行文件?
为什么调用printf导致main不同的函数序言?
有关GNU链接器编辑器“ld”的问题?
在Linux 64位上交叉编译Windows 64位程序集
汇编和多核心之间的关系是什么?
如何索引malloc'd缓冲区和输出
你似乎不存在的意见之一确实提到你在Windows上安装了Dev-Cpp 。 如果你的路径上有Dev-Cpp的 MinGW bin目录,那么你可以使用GNU Linker LD 。
我不知道你是否在使用Dev-Cpp的32位或者64位的GCC,但是这对于生成一个32位的可执行文件都是有效的:
nasm -f win32 ass.asm -o ass.obj ld -mi386pe -o ass.exe ass.obj
这将告诉NASM生成一个32位的Win32对象, LD将把这个对象链接到一个i386pe的32位Windows可执行文件。
或者,您可以下载GoLink链接器 。 一旦你把它提取到你的路径上,你可以做一些事情:
nasm -f win32 ass.asm -o ass.obj GoLink.exe /console ass.obj kernel32.dll user32.dll gdi32.dll
你可能必须用类似的方式指定你的代码入口点(标签):
GoLink.exe /console /entry _start ass.obj kernel32.dll user32.dll gdi32.dll
在哪里_start可能是您希望程序启动的标签。 如果您不调用任何Win32 API,则不需要列出任何DLL。
如果你没有创建一个控制台应用程序,那么你可以离开/console
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。