__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