__asm("指令")
例如关闭/打开总中断开关 CPSR编程
__asm //使用 C 中变量名代替寄存器 { MOV var,x ADD y,var,x/y }
内联汇编语言中的寄存器名被编译器视为 C 或 C++语言中的变量,因此内联汇编中出现的寄存器名不必定和同名的物理寄存器相对应。
这些寄存器名在使用前必须声明, 不然编译器将提示警告信息app
【1】用 IMPORT 声明全局变量编码
【2】利用 LDR 获得其地址spa
AREA globals, CODE, READONLY EXPORT asmadd IMPORT gvar; 声明外部变量 gvar asmadd LDR R1, =gvar; 装载变量地址 LDR R0, [R1] ; 读出数据 ADD R0, R0, #1; 加 1 操做 STR R0, [R1]; 保存变量值 MOV PC, LR END