求助:keil单步调试时莫名其妙地跳转到另一个函数中去

求助:keil单步调试时莫名其妙地跳转到另一个函数中去,第1张

1:你的塌袜局程序呗优化了

也就是说你的光标处不是真实编译后的汇编执行的地团让方

2:你的确在这调用了函数

或者跳转。(要知道很多运算符都是好租调用的库函数)

keil5app跳转到底层,1、先打开keil软件。

2、依次点击“project”——备档迅“new project”新建一个项目。

3、点开ATMEL选中AT89C51,依次点“仿此确定”蠢差——“是” 。

4、点击设置图标,切换到output选项卡。

5、勾选Create HEX FILE。

6、在新d出的界面点击“Add Files to Group Source Group 1”。

7、选中c文件后,点击“Add”。

8、点击编译图标即可 。

区别如下:

1、定义不同。

AJMP是无条件跳转指令之一,叫做绝对跳转。而LJMP则是长转移指令。如果一个程序代码在2KB以内(是指编译后的BIN代码),可以用AJMP指令。如果一个程序代码超过了2KB,就要用LJMP指令了。

2、范围不同。

AJMP 跳转的范围是2KB之内的,就是AJMP指令和跳转的目的地址在ROM中的同一个2KB范围内。

LJMP 跳转的范围是64KB全部的ROM存储区。

3、使用功能不同。

AJMP主要是用来改变程序执行的路线,到需要的指令或程序去执行。ljmp长转移指令的功能是:把指令码中的目标地址addr16装入程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序,不影响任何标志。知芦

参考资料来源:百度百科-AJMP

参考雀迟资顷猛李料来源:百度百科-ljmp


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12466252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存