打印

汇编程序调用C程序,程序段开始地址确定?

[复制链接]
959|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xufucg|  楼主 | 2014-5-16 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机程序中,使用汇编程序调用C程序是常用的,但是C程序运算时,要占用单片机的寄存器.因为汇编程序的时候有些寄存器已经被赋值,而且后面还要继续用到,如果C语言计算时,占用或修改这些寄存器?(RAM地址).C语言运算返回来以后,汇编程序的继续运算,后果出错。怎样控制C语言运算占用字节的区域?或者说怎样指定“段”开始地址?

相关帖子

沙发
ayb_ice| | 2014-5-16 16:10 | 只看该作者
无条件假设,任何程序调用了其它程序,其它程序会破坏所有的寄存器...

绝大部分编译都是这样规定的,但也有不符合这个规定的,那看具体的规范了

使用特权

评论回复
板凳
xufucg|  楼主 | 2014-5-17 07:32 | 只看该作者
能不能在调用C程序的时候,指定C程序使用寄存器的开始地址?这样只要预留出足够的C程序占用范围,即可解决上述问题.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

49

帖子

0

粉丝