首页 > 解决方案 > 如何将一个字节加载到 MIPS 中的数组中

问题描述

我试图将数组的元素更改为一个字节。但我很难做到这一点。代码的第一部分是访问我要更改的元素。在这种情况下,是第一个。我宁愿不更改这部分代码。但是我很确定这样做的错误低于###

array   .word    0, 0, 0, 0, 0, 0, 0, 0, 0
l       .byte   'L'

firstletter:
    li  $t1,1       # save row num
    li  $t2,1       #save col num
    addiu   $t1,$t1,-1  #Normalize row number
    addiu   $t2,$t2,-1  #Normalize col #
    li  $t3,12      #size of row
    mul $t1,$t1,$t3 #get row offset
    li  $t3,4       #size of col
    mul $t2,$t2,$t3 #get col offset
    la  $s0,board
    add $s0,$s0,$t1 #add row offset to address of board
    add $s0,$s0,$t2 #add col offset to address of board
####Here where I think my mistake is.
    lb  $s4,l
    sb  $s4,0($s0)

    j   $ra



标签: assemblymips

解决方案


在顶部尝试此语法:

l: .ascii "L"

然后在底部试试这个:

la      $s4, l
lb      $s0, 0($s4)

您的问题似乎是您正在将 'l' 的地址加载到 s4 中,而不是 'l' 的实际值。

不得不查看我几年前编写的一些代码,这对我有用。让我知道这是否有帮助!


推荐阅读