完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我已经在头文件中声明了一个程序集函数,如下:ext._Fract assFunc(_Fract*,_Fract*);assFunc在.s文件中定义如下:这个函数在.c(包括上面讨论的.h文件)中被调用,如下:_Fract A=assFunc(xSpaceArray,ySpaceArray);xSpaceArray和ySpaceArray大小为3的RE分别定义在X存储器和Y存储器中。我已经将测试值(xStuleRay[0 ]=0.437和ySturEurLay[0 ]=0.4给出给ASFUNC。我已经开始使用模拟器逐行调试assFunc,并检查工作寄存器w0、w1、w4、w5和AccA的值。最后,当代码指针命中return语句时,值w0=0x1660,这是预期的值,但是当我开始逐行步进代码指针时,这个值不会返回到_Fract变量A和显示的值A=0(默认值)。为什么会这样?注意:这个函数只是一个测试函数(没有任何用途),我用它来熟悉汇编语言。
|
|
相关推荐
5个回答
|
|
|
对于这个测试,您使用变量A吗?尝试将其定义为易失性。
|
|
|
|
|
|
我建议看拆卸。我怀疑这是调试工具中的一个bug。
|
|
|
|
|
|
真的!不这样想。谢谢你的计算。达到5ms感觉不错。感谢NorthGuy和其他人帮我编写程序集代码。不过,有一个疑问,假设我的程序集代码正在执行,并且发生了中断,我需要保存工作寄存器还是由编译器处理?在从C调用程序集函数或在可调用程序集函数中编写程序集指令时,还有其他需要注意的事项吗?PS:1:1和0:我欠你一大堆的汇编代码。对于我的应用程序,我必须修改您的代码,但是您的代码太有趣了,它让我探索了汇编语言。谢谢!
|
|
|
|
|
|
它是中断作业来保存它改变的任何东西。
|
|
|
|
|
|
对不起,中断工作是什么意思?我需要手动编写代码来处理寄存器,还是由XC16编译器来处理?
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:40 , Processed in 0.743013 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1654