资料介绍
ARM 指令集
ARM 指令集
本章节对ARM 指令集的六大类指令进行详细的描述。
2.6.1跳转指令
跳转指令用于实现程序流程的跳转,在ARM
程序中有两种方法可以实现程式流程的跳转:
ν 使用专门的跳转指令。
ν 直接向程序计数器PC 写入跳转地址值。
透过向程序计数器PC 写入跳转地址值,可以实现在4GB
的地址空间中的任意跳转,在跳转之前结合使用MOV
LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性26位地址空
间的子程序使用。
ARM
指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以
下4 条指令:
[pic] B 跳转指令。
[pic] BL 带返回的跳转指令。
[pic] BLX 带返回和状态切换的跳转指令。
[pic] BX 带状态切换的跳转指令。
[pic] B 指令
[pic] B 指令的语法为:
[pic] B {条件}目标地址
B 指令是最简单的跳转指令。一旦遇到一个B 指令,ARM
处理器将立即跳转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际
值是相对当前PC
值的一个偏移量,而不是一个绝对地址,它的值由汇编器来计算(参考寻址方式中的相
对寻址)。它是24 位有符号数,左移两位后有符号扩充为32
位,表示的有效偏移为26 位(前后32MB 的地址空间)。