【发布时间】:2015-05-31 04:47:36
【问题描述】:
我在 Keil uVision 中使用 89C51。
我已经养成了使用的习惯
JMP label ; goto label
根据数据表,JMP 应该写成JMP @A+DPTR,而我现在使用的应该是SJMP、LJMP 和AJMP。
不过,我使用它的方式效果很好。
问题是,为什么?这是 uVision 对语言的补充吗?
【问题讨论】:
-
检查生成的机器码。我想这只是您的汇编程序的一个功能,因此它会生成最合适的指令,但在手册中找不到任何关于它的内容。
-
如果您使用跳转表,我认为这只是使用
JMP指令的更好方法。 -
好的,我检查了 hex 文件,它被编译为 SJMP(可能还有其他类型,这是我找到的)。
标签: assembly embedded microcontroller 8051