你的汇编环境常量有很多是和具体的芯片相关的,看看你所使用的常量和你选择的芯片定义是不是相同的。像R1 ,R2等等,都是常量,并不是地址值,是编译器自己定义的,如果编译环境没有,那么就会提示UNDEFINED SYMBOL,要不你就直接把书本上的地址寄存器等名称符号该为地址,那就不会出现UNDEFINED SYMBOL错误了。
asm(50) 和 A45
50:行号
A45:错误代码
asm(50) 和A45 表示50行发生了未定义错误,错误代码为A45
从上程序看,大部分是未定义错误,就是说,它找不着. 也可以说,你还未定义这些代号的值.
例如第13行:
MOV R0,#REGB
这个#REGB,编译时找不到它代表什么,所以报错
你应该在MOV R0,#REGB 这条指令之前定义REGB的值.
第38行:
LP1: LCALL SCHDULE
编译时找不到调用的子程序SCHDULE入口,它也报错了.就是说,你还没写SCHDULE这个子程序.
是8051系列的吗