导读: 介绍了分支指令,Load-Store指令(单寄存器指令,多重寄存器指令), 最后一部分:通过学习向自己提出的问题,用于检测是否掌握其中的知识。 |
A branch instruction changes the flow of execution or is used to call a routine. This instruction allows programs to have subroutines
指令 |
解释 |
补充 |
B |
pc=label |
|
BL |
pc=label ,lr = BL下一个指令地址 |
|
BX |
pc=Rm&0xffffffe,T=Rm&1 |
BX使用绝对地址存储在Rm中。T bit(in cpsr)用Rm的最后一位更新。T设置为1时,进入Thmub模式 |
BXL |
lr=BXL的下一条指令 |
|
使用例子:
BL SubRoutine
....
SubRoutine:
MOV pc, lr
二、Load-Store instructions |
在内存和处理器寄存中传递数据。
分为三类:单寄存器传送,多寄存器传送,swap
1.Single-Register Transfer |
指令 |
解释 |
LDR,STR |
load into register/store from register(32bit内存) |
LDRB,STRB |
byte |
LDRH,STRH |
Halfword(16bit内存),支持signed和unsigned |
LDRSB,STRSB |
signed byte |
2.Single-Register Transfer(寻址模式) |
[Rn, #10]
[Rn,Rm]
[Rn,Rm, LSR #3]
[Rn,#8]
[Rn, Rm]!
[Rn, Rm, LSL #4]!
[Rn], #4
[Rn], Rm
[Rn]