当我运行这个例子时,我得到一个错误。删除 PROC1 PROC FAR 后,我收到另一个错误“符号类型冲突”。使用 /coff:“起始地址需要前导下划线:START”。
Microsoft (R) 宏汇编程序版本 6.14.8444 版权所有 (C) Microsoft Corp 1981-1997。版权所有。
汇编: D:\Linux\test1.asm D:\Linux\test1.asm(28) : 错误 A2006: 未定义符号 : START
D:\Linux\test1.asm(16) : 错误 A2004: 符号类型冲突
D:\ Linux\test1.asm(28):错误 A2148:表达式中的符号类型无效:STAR
TITLE EXAMPLE
DATA SEGMENT
VARX DW 6
VARY DW 7
RESULT DW ?
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
COSEG SEGMENT
PROC1 PROC FAR
ASSUME CS:COSEG, DS:DATA, SS:STACK1
START: PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV DX, VARX
MOV DX, VARY
MOV CL, 3
SAL DX, CL
SUB DX, VARX
SAR DX, 1
MOV RESULT, DX
RET
PROC1 ENDP
COSEG ENDS
END START
附录:
删除 start 后,它在第 16 行留下了错误。为什么会出现此错误MOV AX, DATA
?
Microsoft (R) 宏汇编程序版本 6.14.8444 版权所有 (C) Microsoft Corp 1981-1997。版权所有。
汇编:D:\Linux\test1.asm D:\Linux\test1.asm(16):错误 A2004:符号类型冲突