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

[复制链接]
1201|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

粉丝
快速回复 在线客服 返回列表 返回顶部