【发布时间】:2017-09-24 13:48:49
【问题描述】:
我正在尝试在程序集中创建我的第一个可执行文件,但我遇到了应用程序永远不会退出的问题(我必须手动终止它)。 代码:
[bits 32]
extern _puts
section .data
testString:
db "Test"
section .text
_WinMain@16:
push testString
call _puts
add esp,4
xor eax,eax
ret
我使用 NASM 2.13.01 和 ld.exe 2.28 编译它(在 Windows 10 上)
nasm -f Win32 -p first_exe.obj first_exe.asm
ld first_exe.obj -o first_exe.exe c:\Windows\System32\msvcrt.dll
我的朋友告诉我,它可以在他的计算机上使用相同的 NASM 版本,但 ld 2.24 (windows 8)
是 ld、Windows 10 有问题还是我的代码有问题?除了调用exit函数外,有什么解决方法吗?
感谢您的帮助
【问题讨论】:
-
相关,可能还有更多细节或文档链接:stackoverflow.com/questions/46294072/…
标签: assembly