我已经获得了我想在MIPS中创建的伪代码,基本上是使用循环来增加数组值。我需要通过初始化$ s0来保持数组的基地址和$ s1来保持数组的索引来启动循环。索引应该从零开始,这意味着第十个元素的从零开始的数组索引为9。
如果有人可以帮助我并解释那些有用的MIPS代码。
如果单词不等于零:递增索引
在单词
使用else类型条件从底部掉落。 我还得到了一个数据段,它定义了10个值,这些值作为内存中的单词彼此相邻存储。如图所示:
.data #by default, the "data segment" starts at address 0x10010000
.word 1
.word 2
.word 3
.word 4
.word 5
.word 6
.word 7
.word 8
.word 9
.word 0
.text #instructions start below
另外,我有Permit Extended Pseudo Unchecked。
我目前尝试了以下代码:
.data
array: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
.text
main:
la $s0 array
move $s1 $zero
loop:
sll $t0 $s1 2
add $t1 $s0 $t0
lw $t2 0($t1)
beq $t2 $zero exit
addi $s1 $s1 1
addi $t2 $t2 2
sw $t2 0($t1)
j loop
exit:
jr $ra
当检查扩展允许伪时,它工作正常,但未选中时则不行,因为我需要它在未选中时工作。