C和汇编混合编程
来源:互联网 发布:efe 矩阵分析中的权重 编辑:程序博客网 时间:2024/04/19 18:23
汇编中调用C语言函数
假如c语言中有一个函数 system();
在汇编中调用形式如下 : ldr pc , =system
C中调用汇编语言
假如汇编语言中有
led:
。。。的汇编程序
在c语言中: 先把led声明为全局
.global led led();
来调用
C内嵌汇编代码(在没有.s文件时)
内嵌格式
__asm__( 汇编语句部分 :输出部分 :输入部分 :破坏描述部分 );
总共分为四个部分,各个部分用 “:”分开,第一部分必须写后面三个可以省略,但是 “:”不能省略
汇编语句部分:汇编语言的集合可以包含多条汇编语句,没条汇编语句之间用换行符“\n”隔开或使用“;”隔开
输出部分:在汇编中被修改的C变量列表
输入部分:作为参数输入到汇编中的变量列表
破坏部分描述:执行汇编指令会破坏的寄存器描述
例
void write_p15_c1(unsigned long value){ __asm__( "mcr p15,0,%0,c1,c0,0\n"//0是数字零 : :"r"(value) //r中的值传到value里 :"memory" );}
void read_p15_c1(unsigned long value){ __asm__( "mrc p15,0,%0,c1,c0,0\n"//0是数字零 :"=r"(value)//value 的值传到r中 : :"memory" );}
unsigned long old;unsigned long temp;__asm__ valatile( "mrs %0,cpsr\n" "orr %1,%0,#128\n" "msr cpsr_c,%a\n" :"=r"(old),"=r"(temp) : :"memory"
volatile 代表告诉编译器不要对以下的代码进行优化
0 0
- C和汇编混合编程
- 汇编和c混合编程
- C和汇编混合编程
- c和汇编混合编程
- C和汇编混合编程
- c和汇编混合编程
- c/c艹和汇编混合编程
- ARM中C和汇编混合编程
- 转C/C++和汇编混合编程
- 转C和汇编混合编程
- PICC中C和汇编混合编程
- C和汇编混合编程及示例
- C和ARM汇编混合编程
- C语言和汇编混合编程
- arm汇编和c混合编程
- ARM汇编和C混合编程-笔记
- C 汇编混合编程
- ARM汇编, C语言和汇编混合编程
- Git详解之六:Git工具
- Linux环境下简单的NFS部署
- python中的string模块
- Spring security oauth2最简单入门环境搭建--二、干货
- HDU11186
- C和汇编混合编程
- 求二进制中1的个数(编程之美)
- 循环引用 场景
- 计算随机抛1000次的骰子各个数字产生的概率。
- python之SQLAlchemy
- 使用Bmob为你的移动应用提供后端数据服务
- 清除Planning服务器端的TMP文件
- 关于this指针
- Python出现TypeError: file() argument 1 must be encoded string without NULL bytes, not str问题解决