MIPS 程序集在使用变量作为偏移量时访问数组
MIPS Assembly accessing an array while using a variable as the offset
有没有办法使用变量作为数组的偏移量?例如,我知道正常的偏移量和数组是这样工作的:
ARRAY: .word 0,1,2,3,4,5,6,7,8,9
lw $t6, ARRAY
lw $t7, 0($t6)
零索引将加载到 t7 中,但我想要做的是:
ARRAY: .word 0,1,2,3,4,5,6,7,8,9
lw $t6, ARRAY
li $t7, 0
lw $t8, $t7($t6)
这样我就可以在代码中增加变量 t7,而不必对偏移量进行硬编码。我一直收到语法错误,所以我猜我想做的是错误的。无论如何我可以做这样的事情以便我可以增加数组的索引吗?
为了递增带有变量的数组,您必须使用此设置:
ARRAY: .word 1,2,3,4,5,6,7,8,9
li $t2, 0
lw $t3, ARRAY($t2)
addi $t2, $t2, 1
有没有办法使用变量作为数组的偏移量?例如,我知道正常的偏移量和数组是这样工作的:
ARRAY: .word 0,1,2,3,4,5,6,7,8,9
lw $t6, ARRAY
lw $t7, 0($t6)
零索引将加载到 t7 中,但我想要做的是:
ARRAY: .word 0,1,2,3,4,5,6,7,8,9
lw $t6, ARRAY
li $t7, 0
lw $t8, $t7($t6)
这样我就可以在代码中增加变量 t7,而不必对偏移量进行硬编码。我一直收到语法错误,所以我猜我想做的是错误的。无论如何我可以做这样的事情以便我可以增加数组的索引吗?
为了递增带有变量的数组,您必须使用此设置:
ARRAY: .word 1,2,3,4,5,6,7,8,9
li $t2, 0
lw $t3, ARRAY($t2)
addi $t2, $t2, 1