我的程序跑飞了,总是调用不相关的程序,为何?

2020-02-09 11:41发布

现在有个问题就是我有一个子程序,假如是LOOP35,我有两个地方调用它,但是程序实际运行时不止两个地方调用,所以造成其它地方有多余显示,我把它搬到内存其它位置也是出现同样情况,郁闷啊,我在程序中搜索也只有两个地方找到啊,
如果我将调用的CALL LOOP35,0语句不用,但它会调用其它显示子程序,显示另一段代码,可是我这个程序中没调用它,查了四天,无结果,哎。。。。。
loop35:   ;这是我要调用的子程序,因是临时加入的子程序,所以此处先将主程序要调用的先完成再进行下面处理
CALL JMP2800,0
MOVLB 0

ZHU:   这是调用LOOP35的主程序
MOVWF 0xe4,BANKED
CALL loop35,0;CALL JMP2800,0   此处为插入位置
MOVLB 0

请大侠指点下到底 是哪方面的原因,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
xyzasdad
1楼-- · 2020-02-11 18:25
因前段时间没有时间试,今天按17楼方法全改后,还是一样啊,还是出现同样情况,郁闷啊。。。。。
dengzi2006
2楼-- · 2020-02-11 19:13
有可能是你的显示操作不对,没有消隐
max232
3楼-- · 2020-02-11 22:35
楼主的程序量大吗?

先仿真一下,看有没什么规律可循;

亦可先屏蔽掉一些程序段,如先只用一处地方调用它看怎样;

你用PIC的哪款片子?

是不是PAGE分页 bank 没有处理好程序飞了?
xyzasdad
4楼-- · 2020-02-12 00:11
 精彩回答 2  元偷偷看……
xyzasdad
5楼-- · 2020-02-12 03:31
我的寻址操作都是有的MOVFF指令,这样可以忽略BSR,应该不存在跑出的问题啊
xyzasdad
6楼-- · 2020-02-12 04:02
而且我将这段显示的字A搬到程序其它位置,在程序竟然一样还是调用了它

一周热门 更多>