所以我正在制作看起来像这样的东西
for(i=0; i<10; i++){
print i;
}
但是在MIPS中,我无法理解我应该如何增加索引位置。这是我到目前为止所拥有的
.data
a:
.word 3, 2, 1, 8, 6, 9, 3, 4, 2, 5
nline:
.asciiz "\n"
.text
.globl main
main:
li $v0, 0
loop1:
bgt $t0, 10, exit
addi $t0, $t0, 1 #counter
lw $t1, a
li $v0, 1
move $a0, $t1
syscall
exit:
li $v0, 10
syscall
所以我不想把lw $ t1放在循环中,但是想法是循环的每次迭代都会打印3,4,1,8,我知道这将是a,a + 4,a + 8,a + 12等,但我不明白如何在没有千种功能的情况下编码。
答案 0 :(得分:0)
我认为你正在尝试这样做:
.data
a:
.word 3, 2, 1, 8, 6, 9, 3, 4, 2, 5
nline:
.asciiz "\n"
.text
.globl main
main:
li $v0, 0
la $t1, a
loop1:
bge $t0, 10, exit
# load word from addrs and goes to the next addrs
lw $t2, 0($t1)
addi $t1, $t1, 4
# syscall to print value
li $v0, 1
move $a0, $t2
syscall
# optional - syscall number for printing character (space)
li $a0, 32
li $v0, 11
syscall
#increment counter
addi $t0, $t0, 1
j loop1
exit:
li $v0, 10
syscall