如何使用Visual Studio 2022在x86程序集中包含多个源文件?

mftmpeh8  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(216)

下面是我的两个文件的简化版本:
macros.asm:

INCLUDE Irvine32.inc

mSampleMacro MACRO prompt_address
    MOV     EDX, prompt_address
    CALL    WriteString
ENDM

END

main.asm:

INCLUDE macros.asm

.data
titleMsg        BYTE "              TITLE",0
instructions    BYTE "Insert instructions.",0

.code
main PROC
    
    PUSH    OFFSET titleMsg
    PUSH    OFFSET instructions
    CALL    DisplayTitleAndInstructions
    Invoke ExitProcess,0
main ENDP

DisplayTitleAndInstructions PROC
    PUSH    EBP
    MOV     EBP, ESP

    MOV     EDX, [EBP + 12]     ; title
    CALL    WriteString
    CALL    Crlf
    CALL    Crlf
    MOV     EDX, [EBP + 8]      ; instructions
    CALL    WriteString
    CALL    Crlf
    CALL    Crlf

    POP     EBP
    RET     12
DisplayTitleAndInstructions ENDP

生成时出现错误:

LNK2001 unresolved external symbol _mainCRTStartup  Project Z:\project\LINK
LNK1120 1 unresolved externals  Project D:\autodelete_noav\Debug\Project.exe

我尝试过:我已将Project属性中的入口点更改为main,但使用_main而不是_mainCRTStartup时出现相同的错误。当我将主过程更改为命名为_main时,仍然出现此错误。我已尝试更改包含路径,包括/排除macros.asm中的END,将链接器的系统类型切换为Windows/Console/Native(都出现类似错误)等。
我不确定是文件本身的问题,还是我在Visual Studio中配置一切的方式的问题。
提前感谢任何愿意提供帮助的人。

u3r8eeie

u3r8eeie1#

感谢Michael Petch,将macros.asm重命名为macros.inc并删除END语句修复了它。

相关问题