0
我嘗試在win7(32位)上使用MASM6.15編寫中斷解決程序。masm錯誤:錯誤A2006:未定義符號:BEGIN
但編譯時出現兩個奇怪的錯誤信息。
組裝:int7.asm
int7.asm < 19>:錯誤A2206:缺少運算符在表達
int7.asm < 77>:錯誤A2006:未定義的符號:BEGIN
我在演示中標記了這兩行。 非常感謝!
DATA SEGMENT
COUNT DW 1
MSG DB 0DH,0AH,'THE BELL IS RINGING!',07H,0DH,0AH,'$'
FLAG DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
BEGIN: PUSH DS
XOR AX,AX
PUSH AX
MOV AL,1CH
MOV AH,35H
INT 21H
PUSH ES
PUSH BX
;----------------------
MOV DX,OFF SEG RING
MOV AX,SEG RING ; it shows error here : missing operator
MOV DS,AX
MOV AL,1CH
MOV AH,25H
INT 21H
;----------------------
IN AL,21H
AND AL,11111110B
OUT 21H,AL
INT 21H
STI
;----------------------
;REPEAT
DELAY: MOV SI,1000H
DELAY1: DEC SI
JNZ DELAY1
AND FLAG,01H
JNZ EXIT1
DEC SI
JNZ DELAY1
EXIT1: MOV FLAG,0
MOV COUNT,1
POP DX
POP DS
MOV AL,1CH
MOV AH,25H
INT 21H
RET
MAIN ENDP
RING PROC FAR
PUSH DS
PUSH AX
PUSH CX
PUSH DX
MOV AX,DATA
MOV DS,AX
STI
DEC COUNT
JNZ EXIT
MOV DX,OFFSET MSG
MOV AH,09H
INT 21H
MOV COUNT,182
MOV AH,0BH
INT 21H
CMP AL,0
JZ EXIT
MOV FLAG,1
EXIT: CLI
POP DX
POP CX
POP AX
POP DS
IRET
RING ENDP
CODE ENDS
END BEGIN ; it shows that BEGIN is undefined symbol
'MOV DX,OFF SEG RING' < - 你的意思是'MOV DX,OFFSET RING'嗎? – Michael 2014-11-23 07:55:18
就像一個參考:沒有理由彙編代碼必須全部大寫。我不知道爲什麼這麼多的範例和教程使用全部大寫,但我認爲人們應該離開這個東西。 – 2014-11-23 08:03:32
我很抱歉,我改變了它,但它仍然有相同的錯誤.. – tinyork 2014-11-23 11:11:11