【问题标题】:error A2004: masm visual studio 2012错误 A2004:masm 视觉工作室 2012
【发布时间】:2013-06-29 19:05:23
【问题描述】:

在 Visual Studio 2012 中编译下面的 asm 代码

page 60,132
TITLE A05ASM1 (EXE) MOVE AND ADD OPERATION
;---------------------------------------------
STACK   SEGMENT PARA STACK 'Stack'
        DW 32 DUP(0)
STACK ENDS
;---------------------------------------------
DATASEG SEGMENT PARA 'Data'
var_01  DW 215
var_02  DW 315
var_03  DW ?
DATASEG ENDS
;---------------------------------------------
CODESEG SEGMENT PARA 'Code'
_main   PROC FAR
        ASSUME SS:STACK, DS:DATASEG, CS:CODESEG
        MOV AX,DATASEG
        MOV DS,AX

        MOV AX, var_01
        ADD AX, var_02
        MOV var_03, AX

        MOV AX, 4C00H
        INT 21H
_main   ENDP
CODESEG ENDS
        END _main

得到以下错误:

  • 错误 A2004:符号类型冲突 C:masmProject\check.asm 17 1 mASM

  • 错误 2 错误 MSB3721:命令 "ml.exe /c /nologo /Zi /Fo"Debug\check.obj" /W3 /errorReport:prompt /Tacheck.asm" 退出,代码为 1。 C: ~\masm.targets 49 5 mASM

尝试了网上的各种建议,但无法解决。

【问题讨论】:

标签: visual-studio-2012 masm masm32


【解决方案1】:

您似乎正在尝试构建一个 MS-DOS 可执行文件。

我认为您可以通过在 ML 命令行中添加 /omf 开关来消除即时错误,但我不知道 ML 是否能够链接生成的 .obj 文件。

【讨论】:

  • 是的,它无法链接“错误LNK1107:无效或损坏的文件:”
  • 我怀疑现代版本的 VS 不能再构建 DOS 二进制文件。最好的选择可能是下载 MASM 6.11 的副本,并使用与其捆绑的工具来组装和链接您的代码。
猜你喜欢
  • 2014-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多