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

我正在为x86处理器第6版的汇编语言学习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中编写的第一个程序,因此它可能有错误 . 任何改进建议也受到欢迎 .