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。
相关文章推荐
- C语言与汇编语言混合编程应遵守的规则
- 如何在64位的linux系统上使用汇编和C语言混合编程
- 如何在64位的linux系统上使用汇编和C语言混合编程
- ARM汇编与C语言混合编程之汇编调用C函数
- C语言与汇编语言混合编程应遵守的规则
- 如何在64位的linux系统上使用汇编和C语言混合编程
- ARM中C语言和汇编语言的混合编程
- 嵌入式Linux ARM汇编(七)——C语言与ARM汇编混合编程
- C语言与汇编混合编程
- VxWorks中高精度实时时钟的实现及C语言汇编混合编程
- 嵌入式Linux ARM汇编(七)——C语言与ARM汇编混合编程
- VxWorks中高精度实时时钟的实现及C语言汇编混合编程
- 【实验】Arm汇编和C语言混合编程实验
- 嵌入式Linux ARM汇编(七)——C语言与ARM汇编混合编程
- 关于C语言和汇编语言混合编程的一点思考
- Linux0.11内核--汇编和C语言混合编程之参数传递
- Linux0.11内核--汇编和C语言混合编程之参数传递
- C语言与汇编混合编程
- ARM中C语言和汇编语言混合编程
- 如何在64位的linux系统上使用汇编和C语言混合编程-32汇编移植64位系统