完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我使用调试器来遍历我的代码,发现它没有按预期运行。在一些调用和GOTO之后,我期望代码通过RESLW 0代码行返回到它的原点。它并不是挂在那条线上…然后,我用“.”替换了“retlw”以进行测试,没有区别。我在MPASM的用户指南上读到,if和.可以深入16级,而loop可以深入8级。他们没有讨论(我能找到的)goto或call的限制,但是在我的脑海中,我想,由于堆栈,一定有一个限制?10LF320是单行的,单页只有一个堆栈,因此我不必在返回行或重述行中指定它,那么为什么我的代码不像它应该的那样返回呢?具体来说,我发现在Goto“标准”和Goto“FAST”的驱动中都存在错误。我故意缩短了循环的值,这样我就可以在合理的时间内通过它们。
|
|
相关推荐
2个回答
|
|
GOTO不使用堆栈,调用DO。GOTO“无条件跳转”到目标行而不保存返回地址,CALL将返回地址保存在堆栈上。RETURN和RETLW都从堆栈加载地址,唯一的区别在于RETLW在工作寄存器中放置8位的文本,与MOVLW一样。唱叫走到一条线上,从那里跑下来。当它遇到一个返回时,它会回到调用的地方,并从那里恢复执行。GOTO只是随心所欲,并不隐式保存。作为附注,在更改端口值时,一定要尝试写到LATx寄存器以避免读-修改-写问题。此外,CLRF可能比MOVLW 0x0 MOVWF快。
|
|
|
|
您正在用GOTO分支到具有返回/ReLW的子程序,但无处返回。每一个返回/RESLW都必须有一个匹配的调用。
|
|
|
|
只有小组成员才能发言,加入小组>>
5189 浏览 9 评论
2009 浏览 8 评论
1933 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3181 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2232 浏览 5 评论
743浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
642浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 20:27 , Processed in 4.369338 second(s), Total 52, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号