您的位置:首页 > 编程语言 > C语言/C++

C语言和汇编混合编程

2016-09-12 20:57 218 查看

1.在C/C++程序中内嵌汇编指令

在ARM 的C语言程序中,使用关键字__asm(下划线是两个)来标识一段汇编指令。

2.在汇编程序中访问C程序变量

汇编可以通过对C程序中的声明的全局变量进行地间接访问:
1)使用IMPORT伪指令声明所要调用的全局变量;
2)使用LDR指令读取全局变量的内存地址,通常该全局变量的内存地址存放在程序的数据缓冲池中;
3)根据该数据类型,使用相应的LDR指令读取该全局变量的值,或者使用相应的STR指令修改该全局变量的值。

3.C程序与汇编互相调用

要注意寄存器的使用规则:
1)子程序间通过寄存器R0~R3来传递参数;
2)寄存器R15是程序计数器,记作PC;
3)寄存器R14称为链接寄存器,记作LR,用于保存子函数的返回地址;
4)在子程序中,使用寄存器R4~R11来保存局部变量;
5)寄存器R13用于数据栈指针,记作SP,寄存器SP在进入子程序时的值和退出子程序时的值必须同等;
6)寄存器R12用于保存SP,在函数返回时使用该寄存器出栈,记作IP。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息