打印

汇编和C混合编程时寄存器的管理

[复制链接]
3373|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yirongfu|  楼主 | 2011-7-30 23:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直是C是C汇编是汇编,现在如果程序采用混编,而且汇编部分涉及到个别General-Purpose Registers和RAM中的寄存器操作,又不希望汇编部分的这些寄存器被重复使用(或者说它们是全局变量)。这种情况下,编译后是否会出现C代码部分被机器编译后使用了与汇编部分使用的同一个寄存器?或者该如何操作或设置以避免这种情况?

相关帖子

沙发
永远的不知| | 2011-7-31 00:21 | 只看该作者
1# yirongfu

您汇编的部分应该也是一个函数吧,不能把通用寄存器设为全局变量,变量应该用RAM,这样寄存器就不会出现冲突。

使用特权

评论回复
板凳
yirongfu|  楼主 | 2011-7-31 13:32 | 只看该作者
2# 永远的不知
您的意思是汇编部分使用的RAM变量,编译器会自动识别出来,不会在C部分的编译中被使用,是吗?

使用特权

评论回复
地板
永远的不知| | 2011-7-31 18:41 | 只看该作者
本帖最后由 永远的不知 于 2011-7-31 18:46 编辑

3# yirongfu

您参考下这个文档吧

MSP430_单片机_C语言和汇编语言混合编程.pdf (129.05 KB)

使用特权

评论回复
5
anqier1| | 2011-8-1 21:27 | 只看该作者
非常好的资料

使用特权

评论回复
6
anqier1| | 2011-8-1 21:27 | 只看该作者
对我很实用

使用特权

评论回复
7
anqier1| | 2011-8-1 21:27 | 只看该作者
混合变成很细

使用特权

评论回复
8
yirongfu|  楼主 | 2011-8-1 22:18 | 只看该作者
4# 永远的不知
多谢,眼泪哗哗的。。。

使用特权

评论回复
9
aa_001| | 2011-8-2 10:00 | 只看该作者
相当实用啦

使用特权

评论回复
10
bb_002| | 2011-8-2 10:08 | 只看该作者
目前还用不到

使用特权

评论回复
11
金鱼木鱼| | 2011-8-2 19:09 | 只看该作者
我赛,楼主的资料非常好

使用特权

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

本版积分规则

个人签名:生活将我们磨圆,是为了让我们滚得更远。。。 我来到这个世上就没打算活着回去!

99

主题

901

帖子

2

粉丝