打印

开始学汇编了:汇编调用C编译出来的汇编方法

[复制链接]
2013|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32W108|  楼主 | 2011-1-23 23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 STM32W108 于 2011-1-24 09:43 编辑

开始学汇编了,汇编寄存器使用规则完全按照C的规则来。 这样,汇编和C就可以相互混合使用。 熟悉C的很容易理解这种方法写的汇编。

C调用汇编比较容易。

汇编调用C(实际上是汇编调用C编译出来的汇编代码),需要注意(仅针对IAR):
1.如果需要使用全局寄存器变量,则需要在C里面把这些寄存器锁定,确保C语言不使用这些寄存器。
2.C语言的全局变量会自动初始化。汇编在调用C函数之前,需要把C函数的全局变量手动初始化正确值。
3.有些编译器会使用虚拟寄存器。汇编调用C函数必须自己定义虚拟寄存器,并遵循C语言使用规则。 这种方法写汇编挺爽的。 AVR,STM8,MSP430三款MCU汇编一起学。
沙发
xufucg| | 2014-5-17 11:01 | 只看该作者
请介绍的具体一点,汇编调用C之前,怎样进行锁定汇编中的寄存器,或者进入C以后,怎样指定C使用寄存器的开始地址位置?

使用特权

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

本版积分规则

个人签名:http://www.rf-module-china.com stm32w108@126.com  深圳华奥通公司招聘开单片机射频开发工程师 https://bbs.21ic.com/icview-210623-1-1.html

0

主题

89

帖子

1

粉丝