首页 文章

无法编译此汇编代码

提问于
浏览
0

我已经开始学习汇编并尝试在visual studio 2010上编译以下代码

DSEG SEGMENT
    A DW 8
    B DW 10
DSEG ENDS

SSEG SEGMENT STACK
    DW 100H DUP(?)
SSEG ENDS

CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG, SS:SSEG

MAIN PROC FAR
    PUSH DS
    MOV  AX, 0
    PUSH AX
    MOV  AX, DSEG
    MOV  DS, AX

    ; The start of the program

    MOV  AX, A
    MOV  BX, B
    ADD  AX, BX
    MOV  A, AX

    RET
MAIN ENDP

CSEG ENDS

END MAIN

我收到以下错误:

1>main.asm(17): error A2004: symbol type conflict
1>main.asm(32): warning A4023: with /coff switch, leading underscore required for start address : MAIN
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets(49,5): error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\main.obj" /W3 /errorReport:prompt /coff  /Tamain.asm" exited with code 1.

我搜索了网页上的搜索结果,我发现的唯一一件事就是错误A2004因为/ coff指令而发生 .

如何从参数列表中删除/ coff? (如果这是将此错误归因于apeare) .

谢谢,
Ido Sorozon

1 回答

  • 2

    如果您正在学习汇编语言基础知识,那么您应该尝试使用emu8086:它是一个专门用于汇编学习的工具,它具有支持宏的Masm兼容汇编程序(它还支持fasm语法)和带DOS的8086 cpu模拟器屏幕模拟以测试/调试您的工作 .

    它可以生成16位COM程序,老式EXE甚至引导扇区 .

    您在问题中显示的示例程序可以毫无问题地组装该工具 .

相关问题