B
if ConditionPassed(cond) then
{
EncodingSpecificOperations(PC, lable);
BranchWritePC(PC + imm32);
}
// All versions of the Thumb instruction set
T1 : B
T2 : B
// All versions of the Thumb instruction set from Thumb-2 onwards.
T3 : B
T4 : B
Specifies the label of the instruction that is to be branched to.
The assembler calculates the required value of the offset
from the PC value of the B instruction to this label,
then selects an encoding that will set imm32 to that offset.
Allowed offsets are even numbers in the range
T1 : -256 to 254 : imm8
T2 : -2048 to 2046 : imm11
T3 : -1048576 to 1048574 : imm6 + imm11
T4 : -16777216 to 16777214 : imm10 + imm11
BX -- Branch and Exchange causes a branch to an address and instruction set specified by a register.
T1 : BX
BLX (register) -- Branch and Exchange calls a subroutine at an address and instruction set specified by a register.
T1 : BLX
BL, BLX (immediate) -- Branch with Link (immediate) calls a subroutine at a PC-relative address.
T1 : BL
T2 : BLX
关键字:ARM Cortex-M 指令编码
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』