免责声明:我对大会全新,所以请原谅我的潜在无知。
我正在从Irvine的汇编语言for x86 Processors 6th Ed。学习x86汇编。
按照本书中的示例,我使用的是Irvine32.inc
文件。
我的程序汇编但是当我尝试链接.obj
文件时,它给出了以下错误:
error LNK2001: unresolved external symbol _ExitProcess@4
我猜它应该在Irvine32.inc
中定义。类似问题的答案表明我尝试包含Irvine32
库:
INCLUDELIB Irvine32.lib
但这并不能解决问题。如果重要的话,我正在直接从MASM32编辑器进行组装和链接。
导致此问题的原因是什么?
我的代码:
TITLE SUM OF ARRAY
INCLUDELIB C:\Irvine\Irvine32.lib
INCLUDE C:\Irvine\Irvine32.inc
.data
arrayNums WORD 10,20,30,40,50
count = ($ - OFFSET arrayNums) / (TYPE WORD)
.code
main PROC
mov edi, OFFSET arrayNums ; move address of arrayNums to edi, will be used to access array
mov ecx, 0 ; set ecx bits to 0
mov ecx, count ; set ecx bits to count (5)
mov eax, 0 ; set eax bits to 0, will hold sum
top:
add ax, [edi] ; add number at location of address held by edi
add edi, TYPE WORD ; add TYPE WORD to edi to go to next element
loop top ; loop back to the top
exit
main ENDP
END main
注意:这实际上是我在Assembly中编写的第一个程序,因此它可能有错误。任何改进建议也受到欢迎。