【问题标题】:Specifying specific word in word array MIPS在字数组 MIPS 中指定特定字
【发布时间】:2017-04-28 11:53:36
【问题描述】:

假设我有一个单词数组,哇,如果我说:

wa:    .word    1, 2, 3, 4

la      $s0, wa
lw      $t0, 8($s0)

$t0 现在是否包含从右到左或从左到右的第三个元素(是 3 还是 2)?

同样,如果我在 s0 中有一个字节,在 t3 中有一个常量 0,会说:

srlv    $t0, $s0, $t3

$t0 会包含第 0 位(最右边)还是第 7 位(最左边)>

顺便说一句,如果您有想法,我必须进行一次读取才能获得可以移位的 8 位值,正如我在上面问的那样,我应该如何读取这个? 目前,我确实读过 int,但刚刚意识到,移位不起作用,因为它是一个 4 字节的值。

如果您能回答这些问题,请提前致谢!

【问题讨论】:

    标签: arrays indexing mips shift


    【解决方案1】:

    内存数组是字可寻址的。每个 32 位数据字都有一个唯一的 32 位地址。无论是 32 位字 地址和 32 位数据值以十六进制写入。 例如,数据 0xF2F1AC07 存储在内存地址 1。十六进制常量以前缀 0x 写入。按照惯例,内存是 用低内存地址向底部和高内存绘制 地址朝向顶部。[Petterson & Hennessey]。

    所以在你的情况下lw $t0, 8($s0) 从内存中取出3 并将其放入寄存器$t0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 2015-08-06
      相关资源
      最近更新 更多