使用MASM32在x86程序集中未解析的外部符号

时间:2015-04-03 23:29:06

标签: assembly x86 masm masm32 irvine32

免责声明:我对大会全新,所以请原谅我的潜在无知。

我正在从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中编写的第一个程序,因此它可能有错误。任何改进建议也受到欢迎。

0 个答案:

没有答案