【问题标题】:MIPS; getting the LSB of a hexadecimal valueMIPS;获取十六进制值的 LSB
【发布时间】:2013-03-16 22:16:27
【问题描述】:

我知道有几个问题已经解决了这个问题。但是,我的问题在某种程度上有所不同。假设我必须获取存储在寄存器中的值(十六进制)的 LSB;例如;

如果寄存器$t0包含值0xA4,我需要获取并存储值4

如果寄存器$t0包含值0xBF,我需要获取并存储值F

我了解按位 AND 操作适用于十进制值。有人可以就我如何获得 LSB 提供一些帮助吗?

亲切的问候

【问题讨论】:

  • 你想要 $t0 AND 0x0F
  • “我知道按位与运算适用于十进制值。” - 普通 CPU 不处理十进制。他们处理二进制。
  • 感谢欧根和马特。马特,这对我来说非常愚蠢。感谢您纠正我。
  • 术语抱怨:根据您的描述,您真正想要的是最低有效 Nibble,而不是最低有效 Bit / Byte.

标签: hex mips


【解决方案1】:

您可以像这样轻松地对要从中提取 LSB 本身的数字进行 AND:

0xA4 和 0x0F

与(二进制)相同

10100100b 和 00001111

这基本上意味着只会从二进制数中提取最后四位数字,这就是您想要的 LSB。

【讨论】:

    【解决方案2】:

    所有二进制操作都在通用寄存器上工作 即使 x86 不是 MIPS,你也应该有这样的东西

    and EAX, 0xF
    

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 2019-03-27
      • 2015-08-01
      • 2013-12-08
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      相关资源
      最近更新 更多