微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎么在汇编程序中正确添加代码?

怎么在汇编程序中正确添加代码?

时间:10-02 整理:3721RD 点击:

       最近重拾51单片机汇编,但出师不利,想修改一份代码却总是报错"Error A51:TAEGER OUT OF RANGE"。比如想插入几行代码,哪怕只是简单的“NOP[”指令都会报错,试过在好几处不同位置插入,但有些地方只能插一两句代码,有些地方多一句都不行,个人感觉可能是程序占用的内存地址空间已经满了,但现在一时无法下手,请各位指点一下方向。             如下图蓝色部分,我加了这三行NOP就会报错,只加2行就没问题。


问题原因就是跳转语句的目的地超出跳转范围,容易出现这种问题的语句都是短跳转语句,也就是除了LCALL,LJMP等跳转语句,看看4547行附近有没有这类的语句

呵呵,你牛,反汇编的吧,这个错误不一定是程序容量太大,应该是有一个跳转超出了范围,看看第4547行是什么语句

我买的一个电压力锅就是用反汇编写的,数码管第一位就是个乱码,但功能到是不错。真佩服国人的盗版技术。

在中断里面的把?

你怎么看出这个是反汇编?

4547               LCALL Q07DC                        ;1FA8   12 07 DC

4547               LCALL Q07DC                        ;1FA8   12 07 DC

从程序的标号就可以看出来,另外你比较幸运,这个程序的源程序应该也是汇编写的,如果是C写的,很难可以完美反汇编

是啊,谢谢你的解答。

像看这种反汇编的代码觉得很费劲,很多参数都猜不出,兄弟对阅读这种代码有什么心得可以分享吗?

反汇编就是劳苦命,呵呵,没什么技巧,就是代码,电路,芯片资料全结合,所以就是劳苦命

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top