アームで blx 命令をデコードしたいのですが、ここで良い答えを見つけました: Decoding BLX instruction on ARM/Thumb (IOS)
しかし、私の場合、このヒントを順を追って実行したところ、間違った結果が得られました。理由を教えてもらえますか?
これは私のテストです:
.plt: 000083F0 sub_83F0 ...
...
.text:00008436 FF F7 DC EF BLX sub_83F0
マシンコード「FF F7 DC EF」を次のように解析します。
F7 FF EF DC
11110 1 1111111111 11 1 0 1 1111101110 0
S imm10H J1 J2 imm10L
I1 = NOT(J1 EOR S) = 1
I2 = NOT(J2 EOR S) = 1
imm32 = SignExtend(S:I1:I2:imm10H:imm10L:00)
= SignExtend(1111111111111111110111000)
= SignExtend(0x1FFFFB8)
= ?
では、オフセットは 0xFFB8 ですか?
しかし、0x83F0-0X8436-4=0xFFB6
私はあなたの助けが必要です!!!