导读: 介绍了分支指令,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], Rm, LSL #2