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