代码之家  ›  专栏  ›  技术社区  ›  austinm98

在MIPS中拆分十六进制值

  •  0
  • austinm98  · 技术社区  · 6 年前

    我正在做一个项目,我需要在十六进制值中包含的值,并将其拆分。我将有一个寄存器,它包含一个值0xaa00bbcc,需要将它分成3个不同的整数,a a、bb和cc

    例如:

    如果值为:0x88000232,则需要将其拆分为3个整数: 答:88, 乙:02, 和C:32。

    我该怎么做呢?

    1 回复  |  直到 6 年前
        1
  •  0
  •   user555045    6 年前

    结合srl和andi,但有时其中一个是不必要的。例如:

    srl $t0, $a0, 8
    andi $t0, $t0, 0xFF
    

    这将移动值,使bb从0xaa00bbcc位于底部(0x00aa00bb),然后 andi 重置不属于该bb部分的位。

    当班数为24时, 安迪 不需要。当然,移动0个位置是没有用的,所以在这种情况下只有 安迪 是必要的。