我已经开始学习汇编并尝试在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 回答
如果您正在学习汇编语言基础知识,那么您应该尝试使用emu8086:它是一个专门用于汇编学习的工具,它具有支持宏的Masm兼容汇编程序(它还支持fasm语法)和带DOS的8086 cpu模拟器屏幕模拟以测试/调试您的工作 .
它可以生成16位COM程序,老式EXE甚至引导扇区 .
您在问题中显示的示例程序可以毫无问题地组装该工具 .