如何计算范围?
我知道j
和jal
目标位于2^28
地址块中的任意位置,其中PC提供高4位但我无法实现它。
答案 0 :(得分:1)
这很简单。取第4位PC + 4的高位,并附加J
或JAL
的26位立即数操作数乘以4(这样你只能跳转到4的倍数的地址)。 / p>
对于PC=0x8FFFEE4F
,PC+4
的4个高位是0x8
,因此您可以从0x80000000
跳到0x8FFFFFFC
。如果操作数为0x3FFF404,则操作为J 0x8FFFD010
(0x8 : 0x3FFF404*4
= 0x8 : 0xFFFD010
)
PC+4
在大多数情况下并不重要,但这意味着如果PC=0x8FFFFFFC
,则范围为0x90000000
到0x9FFFFFFC
。