Mips “的二进制表示法”;日航printf“;

Mips “的二进制表示法”;日航printf“;,mips,Mips,我对此感到非常困惑 你是如何得到“jal printf”的二进制表示的, 假设printf位于位置0x4000,而此指令位于位置0x200 有人能详细解释一下吗 谢谢。JAL是一款带有操作码3(%000011)的机型JAL不使用PC相对寻址,因此绝对地址存储在指令字的下26位-除了它向右移动了两位(因为指令需要字对齐,所以无法将跳转编码为奇数地址)。这允许您跳转到内存前2^28字节(256 MB)内的任何字 因此,地址0x4000的JAL将被编码为: %000011000000000010000

我对此感到非常困惑

你是如何得到“jal printf”的二进制表示的, 假设printf位于位置0x4000,而此指令位于位置0x200

有人能详细解释一下吗

谢谢。

JAL
是一款带有操作码3(
%000011
)的机型
JAL
不使用PC相对寻址,因此绝对地址存储在指令字的下26位-除了它向右移动了两位(因为指令需要字对齐,所以无法将跳转编码为奇数地址)。这允许您跳转到内存前2^28字节(256 MB)内的任何字

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

%00001100000000001000000000000

这和

0x0C0001000