0xEA00088E
对应的二进制是:
11101010000000000000100010001110
分析如下:
1110是无条件的意思
101是branch instruction的标志
000000000000100010001110一共24位,就是我们的0x88E,可以表示的最大数是2的24次方,即64MB,所以branch instruction可以前跳或者后跳32MB的空间。
然后然我们看看0x88E到底怎么回事:
0x88E*4+8=0x2240 这才是我们要跳转的地址,即向高地址跳转0x2240个偏移量。
*4是因为指令是32位对齐的,偏移量的单位没必要是字节,只要是双字就可以了。
+8是R15的特性。
所以反过来看如果想跳转到0x2240,那么(0x2240-8)/4就是branch instruction该填的值