B与BL跳转指令目标地址计算方法

1、关于B(跳转指令)与BL(带返回的跳转指令):

B指令与BL指令均能使指令跳转到目标地址,两个指令和目标地址处的指令都属于ARM指令集。二者也都可以根据CPSR中条件标志位的值和指令中的执行条件决定是否执行跳转操作。二者不同的是,B指令只会执行跳转操作;BL指令在跳转的同时还会将PC寄存器的值保存到LR寄存器中。

指令的编码格式:

指令的语法格式:B{L}{<cond>}<target_address>

其中:

●    L决定是否保存返回地址。但有L时,当前PC寄存器的值会保存到LR寄存器中;当没有L时,指令只会跳转,当前PC值不会保存到LR寄存器中;
●    <cond>为指令执行的条件码;
●    <target_address>为指令跳转的目标地址。这个目标地址的计算方法是:将指令中的24位带符号的补码立即数扩展为32位(扩展其符号位);将此32位数左移两位;将得到的值加到PC寄存器中,即得到跳转的目标地址。由这种计算方法可知,跳转的范围大致为-32M~+32M。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值