【问题标题】:How the lbu MIPS instruction workslbu MIPS 指令的工作原理
【发布时间】:2017-03-30 19:43:50
【问题描述】:

涉及我的课程复习问题的快速问题:

lbu $R2, 24($R2)

所以问题要我们在上面的指令执行后显示寄存器$R2的值。

给出两件事(所有值都是十进制):

$R2 = 12

还有内存地址: 36 = -18, 32 = 99, 28 = 177, 24 = -14

我对@9​​87654324@ 指令的工作原理有点迷茫。我很确定该指令将根据提供给 $R2 的偏移量加载最正确的字节,而不是对其进行符号扩展,但这到底是什么意思?我有几个答案,只是不完全确定。

以及如果该指令只是 lblbu 的相同指令的行为方式

【问题讨论】:

    标签: mips


    【解决方案1】:

    而不是符号扩展它,但这究竟是什么意思?

    符号扩展:字的其余位都设置为加载实体的最高有效位的值。

    例如:0x80 => 0xFFFFFF80,0x7F => 0x0000007F。


    零扩展:单词的其余位都设置为零。

    例如:0x80 => 0x00000080,0x7F => 0x0000007F。


    在您的示例中,24($R2) 处的字节为 -18 (0xEE),假设采用 little-endian 布局。这在符号扩展时为 0xFFFFFFEE,在零扩展时为 0x000000EE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多