【发布时间】:2019-01-05 11:14:57
【问题描述】:
我正在使用 Visual Studio 2013 并尝试编写“原始”程序集。我刚开始学习汇编,所以我不太了解它,但如果可能的话,我想编写汇编,而不用 C/C++ 或任何其他语言包装它。
我有一个文件 main.asm,其中包含我正在尝试运行的以下代码。我只是想确认我可以运行一个 asm 程序,以便在阅读汇编的工作原理时可以使用代码。
.MODEL FLAT
.code
neg eax
add eax,5 ;eax = eax -5
END
编译时出现以下错误:
Error 1 error LNK2001: unresolved external symbol _main
Error 2 error LNK1120: 1 unresolved externals
我该如何解决这个问题并了解正在发生的事情?
【问题讨论】:
-
请注意,即使您的代码会链接,它也很可能在到达
add eax,5后崩溃,因为您没有添加代码来关闭进程。 CPU 不知道您的程序在那里结束并继续执行 RAM 中的任何内容。 -
如果您不需要 C 运行时,那么在
.code之后添加标签_main:。在add eax,5之后添加ret然后将END更改为END _main
标签: visual-studio assembly linker-errors masm