1. 要用 asm 关键字加圆括号,最后要有分号。
asm(assembly language tmplate
: output operands
: input operands
: list of clobbered registers);// 被破坏的寄存器列表
2. 如果想要防止编译程序优化汇编代码,可以使用关键字 volatile :
asm volatile ( …
3. 如需适用 POSIX ,可使用关键字 __asm__ 和 __volatile__ ,而不是 asm 和 volatile 。
4. 操作数描述:
“r” 用于输出操作数,输出变量会在代码执行后保存在内存中。
“0” "1""2" 表示使用与前面编号相同的寄存器。
“cc” 表示符号位,用于损坏部。
“&r” 在输入操作数之前就已改变。
“I” 、 ”Ir” 表示常数。
“Jr” indexing constans -4095~4095。e.g. LDR R1, [PC, #operand]
“memory”
“M”0~32
的整数。用法:MOV, R2, R1, ROR #operand
“+” 操作数被指令既读又写。
“=” 表示输出操作数只写,经常用于输出部。