关于跳转和转子的两条伪指令近来发现一些网友在讨论一些程序时,经常出现LJMP、SJMP等写法,这种写法对于51系列MCU的指令系统是没有任何错误的,但却容易引起程序错误,因为在调试程序时,很容易忽略指令地址会发生变化,从而出现莫名其妙的错误。
其实在大多数(例如WAVE)汇编器中,都会提供两条非常有用的伪指令:JMP和CALL。这两条指令在51指令集中并不存在,所以称其为伪指令。
凡是需要跳转和转子时,你尽可以直接使用JMP和CALL,汇编器可以根据程序的实际地址来自动确定使用 LJMP、SJMP、AJMP或LCALL、ACALL等,总之汇编器处理的比我们好,可以减少许多不必要的麻烦。