BまたはBLジャンプを使用した場合の次の命令のアドレスの計算

3113 ワード

1.text

2.global   _start

3_start:

4         b step1

5 step1:

6         ldr pc,  =step2

7 step2:

8         b step2



     :

0:  eaffffff     b   0x4

4:  e59ff000     ldr pc, [pc, #0] ; 0xc

8:  eafffffe     b   0x8

c:  30000008     tsteq r0, #8  ; 0x8





b    :         ,        :

[31:28]     ;

[27:24]  "1010"(0xeaffffff            ) ,  B    ;

         "1011" ,  BL    ;

[23: 0]        PC     。



1>    24             32(      );

2>  32      ;

3>       pc    ,          。



         “b step1”    0xeaffffff:

1>24        0xffffff,     32  :0xffffffff

2>  32        :0xfffffffc,    -4(0xfffffffc     ,       1  -4);

3>pc           (       )     ,    2   -4(PC-4, PC  4   ,               ),         step1   。

             “b 0x4”    ,           0x4   ,        3       。