MIPS 什么十六进制字编码分支指令?

MIPS what hex word encodes branch instruction?

根据我的理解,这条指令中的分支是第一行,可以表示为十六进制值“10b8ffff”。但是显然这不是正确的答案。

这是 MIPS 代码:

    beq  , , L1
    slli , , 2
    add  , , 
    lw   , 0()
    sw   , 0()
 L1: addi , , 1

第一部分 0x10b8 似乎是正确的。我认为问题在于您如何到达 0xFFFF 的偏移量。从指令参考中注意这一点,其中 beq $s, $t, offset:

if $s == $t advance_pc (offset << 2)); else advance_pc (4);

你是说 L1,距离只有 5 个指令,偏移量为 0xFFFF,然后将左移两次以确定正确的位置。由于这看起来 "assignmentish",我将留给您根据指令大小找出正确的值。