이 예제를 실행하면 오류가 발생합니다. PROC1 PROC FAR을 제거한 후 "기호 유형 충돌"오류가 발생합니다./coff : "시작 주소가 필요한 시작 밑줄 : START"윈도우 7의 masm32에서 "error A2006 : undefined symbol"이 (가) 64 비트입니까?
Microsoft (R) Macro Assembler 버전 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. 판권 소유.
조립 : D : \ 리눅스 \ test1.asm의 D : \ 리눅스 \의 test1.asm (28) : 오류 A2006 : 정의되지 않은 기호는 : \ 리눅스 \의 test1.asm (16) :
D를 시작 오류 A2004을 : 기호 유형 충돌
D : \ 리눅스 \의 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
부록 :
시작을 제거한 후에는 왼쪽 오류 왜이 오류가 발생합니까? MOV AX, DATA
?
Microsoft (R) Macro Assembler 버전 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. 판권 소유.
조립 : D : \ 리눅스 \ test1.asm의 D : \ 리눅스 \의 test1.asm (16) : 오류 A2004 : 심볼 유형 충돌
16 행에서 시작, 왼쪽 오류 제거 mov ax, data, 기호 유형 충돌 –
조립할 때/coff 옵션을 사용하고 있습니다. 이는 실제로 Win32 개발에만 필요합니다. Win32에서는 세그먼트 주소를 사용하지 않으므로 사용할 수 없습니다. –