“jal printf”的二进制表示

时间:2013-11-19 06:54:18

标签: mips

我对此很困惑。

你如何实际获得“jal printf”的二进制表示, 假设printf位于0x4000位置且该指令位于0x200位置。

任何人都可以详细解释这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:1)

JALJ-type instruction,其中包含操作码3(%000011)。 JAL不使用PC相对寻址,因此绝对地址存储在指令字的低26位中 - 除了它向右移位两位(因为指令需要字对齐)没有任何意义能够将跳转编码为奇数地址)。这允许您跳转到前2 ^ 28字节内存中的任何(256 MB)。

因此,您的JAL地址0x4000将被编码为:

%00001100000000000001000000000000

相同

0x0C001000