MASM链接错误:未解析的外部符号_DumpRegs @ 0

时间:2013-12-24 16:20:39

标签: assembly masm irvine32

同志们,我是汇编编程的新手,我从masm32汇编程序和后来的nasm汇编程序开始。所以我创建了第一个汇编源文件,我尝试将它与masm32编辑器进行汇编和链接。我一直收到链接错误:

warning LNK4003 : invalid library format; library ignored
hello.obj : error LNK2001 : unresolved external symbol _DumpRegs @0
hello.exe : fatal error LNK1120 : 1 unresolved externals
_
Link error

源文件是hello.asm,其内容为:

.386
.model flat,stdcall
.stack 4096

includelib C:\masm32\include\Irvine32.inc

DumpRegs PROTO


.data

var1 WORD 120
var2 WORD 99

.code
start:


call DumpRegs


end start

PUBLIC start

end

我试图输出寄存器的内容一开始就被卡住了。我正在使用win7 Ultimate x64操作系统。 我应该如何编译它,或者如果在任何情况下源代码有问题,我应该改变什么呢?感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我认为不同的汇编程序带有不同的链接器,即使它们都支持相同的masm语法。我不确定Irvine库是否需要对这些库中的每一个进行一些调整,因为它们都没有附带Irvine库。但是,由于大多数(如果不是所有的)masm汇编程序仅在Windows平台上工作,我使用Visual C ++来组装我的masm程序。我获得了Irvine库以及一个visual studio项目文件,以简化我从this web page设置程序的过程。该网站包含在您开始编程之前设置项目所需的所有信息。视觉工作室的美妙之处在于,您需要做的只是

include Irvine32.inc

include Irvine16.inc

等,然后编写您的源代码。您不需要考虑Irvine32.lib或Irvine16.lib。然后你只需点击运行或启动没有调试按钮,你很高兴去。这为您节省了大量工作,设置时间不长 干杯!