嵌入式系统/ARM 指令
外观
< 嵌入式系统
指令类型 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
跳转和带链接跳转 | Cond | 1 | 0 | 1 | L | 24 位带符号字偏移量 | ||||||||||||||||||||||||||
跳转和带链接跳转以及交换 | Cond | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | L | 1 | Rm | ||||||
1 | 1 | 1 | 1 | 1 | 0 | 1 | H | 24 位带符号字偏移量 | ||||||||||||||||||||||||
软件中断 (SWI) | Cond | 1 | 1 | 1 | 1 | 24 位(解释)立即数 | ||||||||||||||||||||||||||
数据处理指令 | Cond | 0 | 0 | I | 操作码 | S | Rn | Rd | 操作数 2 | |||||||||||||||||||||||
乘法指令 | Cond | 0 | 0 | 0 | 0 | mul | S | Rd/RdHi | Rn/RdLo | Rs | 1 | 0 | 0 | 1 | Rm | |||||||||||||||||
统计前导零 | Cond | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | Rd | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Rm | |||||||||
数据传输指令 | Cond | 0 | 1 | I | P | U | B | W | L | Rn | Rd | 操作数 2 | ||||||||||||||||||||
Cond | 0 | 0 | 0 | P | U | I | W | L | Rn | Rd | offsetH | 1 | S | H | 1 | offsetL | ||||||||||||||||
多寄存器传输指令 | Cond | 1 | 0 | 0 | P | U | S | W | L | Rn | 寄存器列表 | |||||||||||||||||||||
交换内存和寄存器指令 | Cond | 0 | 0 | 0 | 1 | 0 | B | 0 | 0 | Rn | Rd | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | Rm | ||||||||||||
状态寄存器 <=> 通用寄存器传输指令 | Cond | 0 | 0 | 0 | 1 | 0 | R | 0 | 0 | 1 | 1 | 1 | 1 | Rd | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||
Cond | 0 | 0 | I | 1 | 0 | R | 1 | 0 | 字段 | 1 | 1 | 1 | 1 | 操作数 | ||||||||||||||||||
协处理器数据操作 | Cond | 1 | 1 | 1 | 0 | Cop1 | CRn | CRd | CP# | Cop2 | 0 | CRm | ||||||||||||||||||||
协处理器数据传输 | Cond | 1 | 1 | 0 | P | U | N | W | L | Rn | CRd | CP# | 8 位偏移量 | |||||||||||||||||||
协处理器寄存器传输 | Cond | 1 | 1 | 1 | 0 | Cop1 | L | CRn | Rd | CP# | Cop2 | 1 | CRm | |||||||||||||||||||
断点指令 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | x | x | x | x | x | x | x | x | x | x | x | x | 0 | 1 | 1 | 1 | x | x | x | x |
我们在 ARM 微处理器 中更详细地介绍了如何使用 ARM 指令。