assembly - 如何将一个字节加载到 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
解决方案
在顶部尝试此语法:
l: .ascii "L"
然后在底部试试这个:
la $s4, l
lb $s0, 0($s4)
您的问题似乎是您正在将 'l' 的地址加载到 s4 中,而不是 'l' 的实际值。
不得不查看我几年前编写的一些代码,这对我有用。让我知道这是否有帮助!
推荐阅读
- google-apps-script - 谷歌应用脚本的数据查询问题
- javascript - 根据对象的对象生成对象数组
- autodesk-forge - Autodesk Forge 设计自动化冻结
- c# - (2D) 在 Unity 中使用脚本制作 GameObject Shake
- java - 我们可以在 C++ 资源中嵌入可执行 jar 文件并从内存中运行它吗?
- python - 在 groupby 之后对每个组进行相当复杂的计算
- apache-spark - Databricks 中的花拼花数据集在哪里
- python - 无法保存对 BytesIO 缓冲区的更改
- swift - 如何在执行新动画时保持初始动画运行?
- c++ - 无法在 C++ 中读取 .cpp 文件