この例を実行すると、エラーが発生します。PROC1 PROC FARを削除した後、別のエラー「シンボルタイプの競合」が発生します。/ coffの場合:「開始アドレスに必要な先頭の下線:START」。
Microsoft(R)MacroAssemblerバージョン6.14.8444Copyright(C)MicrosoftCorp1981-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)MacroAssemblerバージョン6.14.8444Copyright(C)MicrosoftCorp1981-1997。全著作権所有。
アセンブル:D:\ Linux \ test1.asm D:\ Linux \ test1.asm(16):エラーA2004:シンボルタイプの競合