ARM学习笔记2——分支跳转指令
2014-01-22 14:44
369 查看
一、Arm指令条件码和条件助记符
二、跳转指令B
1、作用
跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB)
2、指令格式(注:B后面如果有条件,条件就是紧跟在B后面,没有空格)
B{<condition>} <target_address>
3、参数说明
3.1、<condition>:它指示指令在什么条件下执行,可省略
3.2、<target_address>:指令跳转的目标地址,指令通过下面的方法计算目标地址:
A、将24位带符号的补码立即数符号扩展到32位
B、将扩展后的32位立即数左移两位
C、将得到的值加到PC寄存器中,即得到跳转的目标地址
三、带连接的跳转指令BL
1、作用
带连接的跳转指令BL将下一条指令的地址拷贝到r14(即返回地址连接寄存器LR)寄存器中,然后跳转到指定地址运行程序。
2、语法格式
BL{<condition>} <target_address>
3、参数说明同B指令
四、带状态切换的跳转指令BX
1、作用
使程序跳转到指令中指定的参数Rm指定的地址执行程序
2、语法格式
BX{<condition>} <Rm>
3、参数说明
<Rm> 包含跳转指令的目标地址,
五、带状态切换的连接跳转指令BLX
1、作用
用于使程序跳转到Thumb状态或从Thumb状态返回,该指令为无条件执行指令,并用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。
2、语法格式
BLX{<condition>} <target_address>
3、参数说明
<target_address>为指令的跳转目标地址,该地址根据以下规则计算
A、将指令指定的24位偏移量进行符号扩展,形成32位立即数
B、将结果左移两位
C、位H(bit[24])加到结果地址的第一位(bit[1])
D、将结果累加到程序计数器PC中
二、跳转指令B
1、作用
跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB)
2、指令格式(注:B后面如果有条件,条件就是紧跟在B后面,没有空格)
B{<condition>} <target_address>
3、参数说明
3.1、<condition>:它指示指令在什么条件下执行,可省略
3.2、<target_address>:指令跳转的目标地址,指令通过下面的方法计算目标地址:
A、将24位带符号的补码立即数符号扩展到32位
B、将扩展后的32位立即数左移两位
C、将得到的值加到PC寄存器中,即得到跳转的目标地址
三、带连接的跳转指令BL
1、作用
带连接的跳转指令BL将下一条指令的地址拷贝到r14(即返回地址连接寄存器LR)寄存器中,然后跳转到指定地址运行程序。
2、语法格式
BL{<condition>} <target_address>
3、参数说明同B指令
四、带状态切换的跳转指令BX
1、作用
使程序跳转到指令中指定的参数Rm指定的地址执行程序
2、语法格式
BX{<condition>} <Rm>
3、参数说明
<Rm> 包含跳转指令的目标地址,
五、带状态切换的连接跳转指令BLX
1、作用
用于使程序跳转到Thumb状态或从Thumb状态返回,该指令为无条件执行指令,并用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。
2、语法格式
BLX{<condition>} <target_address>
3、参数说明
<target_address>为指令的跳转目标地址,该地址根据以下规则计算
A、将指令指定的24位偏移量进行符号扩展,形成32位立即数
B、将结果左移两位
C、位H(bit[24])加到结果地址的第一位(bit[1])
D、将结果累加到程序计数器PC中
相关文章推荐
- ARM汇编指令学习笔记(一、二)【晚上BOOTLOAD了,速度】
- ARM学习笔记(九)--指令基本格式
- 08_ARM汇编自学笔记指令系统之跳转指令
- ARM学习笔记3——数据处理指令
- ARM学习笔记(六)--ARM指令的预取和自修改代码
- arm学习笔记四(arm伪指令)
- Win32汇编笔记-内存管理,和跳转,分支,循环指令
- [国嵌笔记][025][ARM指令分类学习]
- ARM学习笔记6——程序状态寄存器访问指令
- ARM汇编指令学习笔记(一)【为明天BOOTLOADER学习准备】
- ARM汇编伪指令学习笔记
- 嵌入式学习笔记--关于ARM中SWP指令的执行顺序问题【待验证】
- arm 汇编学习常用指令伪指令笔记汇总
- ARM学习笔记(二)——ARM数据处理指令、加载\存储指令
- ARM学习笔记4——加载存储指令
- ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令
- arm学习之汇编跳转指令总结
- 32位汇编语言学习笔记(7)--跳转指令
- ARM学习笔记7——乘法指令
- arm的分支(跳转)指令