C内嵌汇编-格式:
__asm__(汇编语句部分:输出部分:输⼊部分破坏描述部分);
C内嵌汇编以关键字”__asm__”或”asm”开始, 下辖四个部分, 各部分之间使⽤ \":\"分开, 第⼀部分是必须写的,后⾯三部分是可以省略, 但是分号:不能省略!
1.汇编语句部分: 汇编语句 的集合, 可以包含多条汇编语句 , 每条语句之间需要使⽤ 换⾏符 “\\n”隔开或使⽤ 分号“ ; ”隔开。
2.输出部分: 在汇编中被修改的 C变量列表3.输⼊部分: 作为参数输⼊到汇编中的变量列表4.破坏描述部分: 执⾏汇编指令会破坏的寄存器描述范例
void write_p15_c1 (unsigned long value){
__asm__(
“mcr p15, 0, %0, c1 , c0, 0\\n”:
: “r” (value) @编译器选择⼀个R*寄存器: \"memory\");}
unsigned long old;unsigned long temp;__asm__ volatile(\"mrs %0, cpsr \\n\"
\"orr %1 , %0, #128 \\n“\"msr cpsr_c, %1\\n\": \"=r“ (old), \"=r“ (temp):
\"memory\");
@Volatile使⽤此关键字来告诉编译器不要对接下来的这部分代码进⾏优化。
因篇幅问题不能全部显示,请点此查看更多更全内容