當我運行這個例子,我得到一個錯誤。刪除PROC1 PROC FAR後,我得到另一個錯誤「符號類型衝突」。使用/ coff:「起始地址所需的前導下劃線:START」。「錯誤A2006:未定義符號」在窗口7 64位的masm32中?
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
附錄:
去除開始之後,它離開錯誤在第16行。爲什麼在發生這個錯誤?
Microsoft(R)宏彙編程序版本6.14.8444版權所有(C)Microsoft Corp 1981-1997。版權所有。
組裝:d:\ Linux的\ test1.asm d:\ Linux的\ test1.asm(16):錯誤A2004:符號類型衝突
我刪除了第16行的start,left錯誤mov ax,data,什麼是符號類型衝突 –
您在組裝時使用/ coff選項。這只是Win32開發所需要的。在Win32中,你不使用段地址,所以你不能使用它們。 –