同志们,我是汇编编程的新手,我从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操作系统。 我应该如何编译它,或者如果在任何情况下源代码有问题,我应该改变什么呢?感谢任何帮助
答案 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。然后你只需点击运行或启动没有调试按钮,你很高兴去。这为您节省了大量工作,设置时间不长 干杯!