【发布时间】:2021-07-22 04:11:18
【问题描述】:
我开始在 Windows 上学习 x86 汇编。我正在学习 32 位 x86 汇编。我使用nasm 和ld 来编译我的程序。我使用mingw32-make makefile 作为我的构建系统。我假设 ld 包含在 MinGW 中,但我不确定。我只知道它已经在我的电脑上。
我想编译一个非常简单的程序,以确保一切正常,当然,事实并非如此。运行我的可执行文件时,出现一个巨大的蓝色框,上面写着“此应用无法在您的电脑上运行”,关闭通知后,Access is denied 字样打印到我的终端上。
这是我的程序:
global _main
_main:
mov eax, 1
ret
这是我的makefile:
main: learn.asm
nasm -f win32 learn.asm -o learn.o
ld learn.o -o learn.exe
有人可以帮我解决这个问题吗?
【问题讨论】:
-
你确定它不只是崩溃,因为它应该?您需要终止程序。在windows上,我相信你可以简单地
ret。 -
您能提供代码作为答案吗?
-
只需在
mov eax, 1之后添加ret。 -
@Jester 不起作用 :(
-
您的环境是否有
file命令?如果你运行file learn.exe,它会说明什么?
标签: assembly x86 mingw nasm ld