0

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

DSEG段
    一个 DW 8
    B DW 10
DSEG 结束

SSEG 段堆栈
    DW 100H DUP(?)
SSEG 结束

CSEG段
假设 CS:CSEG, DS:DSEG, SS:SSEG

主要过程远
    推DS
    移动轴,0
    推斧
    MOV AX, DSEG
    MOV DS, 斧头

    ; 节目的开始

    MOV AX, A
    MOV BX, B
    添加 AX, BX
    MOV A, 斧头

    RET
主要结束

CSEG 结束

结束主要

我收到以下错误:

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?(如果这是导致此错误出现的原因)。


谢谢,
伊多索罗宗

4

1 回答 1

2

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

它使生成 16 位 COM 程序、老式 EXE 甚至引导扇区成为可能。

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

于 2014-02-19T23:26:00.900 回答