关于8051汇编语言的keil中出现的A45: UNDEFINED SYMBOL (PASS-2)错误
ORG 0000H
LJMP MAIN
ORG 000BH ;提示错误 error A45: UNDEFINED SYMBOL (PASS-2)
LJMP IN1
ORG 001BH
LJMP IN2 ;error A45
ORG 0100H
MAIN: SETB EA
SETB ET0
SETB PT0
MOV A,#0FEH
MOV P2,A
LOOP: MOV R2,#0FH
MOV R1,#64H
LCALL DELAY1 ;error A45
RL A
MOV P2,A
DJNZ R2,LOOP
END
DELAY1:
MOV TMOD,#01H ;warning A73: TEXT FOUND BEYOND END STATEMENT - IGNORED
MOV TL0,#0F0H
MOV TH0,#0D8H
IN1:
MOV TL0,#0F0H
MOV TH0,#0D8H
MOV R3,#55H
RETI
IN2:
MOV R3,#54H
RETI
这是一种情况,编译器在warning A73就已经提示我们,这里的代码段在END之后,被忽略了。所以就会出现A45: UNDEFINED SYMBOL ,因为在END之后的代码全被忽略了。解决方法:将END写在代码的最后面。
还有一种情况就是立即数#FFH,要写成#0FFH,因为字母打头。