问题:
.text:00637C80 E5 34 42 EB BL __mulsf3
.text:00637CA4 DC 34 42 EB BL __mulsf3
.text:016C501C EXPORT __mulsf3
.text:016C501C FF C0 A0 E3 MOV R12, #0xFF
偏移值如何计算出来?
原理:
假设跳转指令处的地址是A,跳转目标处的地址是B.
B,BL指令保存的是偏移地址,这个地址的计算方法是:
1.B-(A+8).A+8是因为ARM的流水线使得指令执行到A处时,PC实际的值是A+8.
2.第一步得到的值是4的倍数,因为ARM的指令是4对齐的,即最低两位