MIPS:如何将值存储到数组中
MIPS: how to store values into array
我编写了程序以从用户那里获取 4 个值并存储它。但是我不知道如何将它放入 'list' (.space):
.data
list: .space 16
msg: .asciiz "Enter 4 numbers: "
.text
main:
la $a0,msg # display prompt string
li $v0,4
syscall
li $v0, 5 # read integer
syscall
add $s0, $v0, $zero #store input1 to s0
li $v0, 5 # read integer
syscall
add $s1, $v0, $zero #store input2 to s1
li $v0, 5 # read integer
syscall
add $s2, $v0, $zero #store input3 to s2
li $v0, 5 # read integer
syscall
add $s3, $v0, $zero #store input4 to s3
exit:
li $v0, 10 # exit system call
sysca
I can't figure out how to put it into the 'list'
通过将数组的基地址加载到某个寄存器,然后使用sw
指令将数据存储在那里:
la $a1, list
# ... read the integers ...
sw $s0, 0($a1)
sw $s1, 4($a1)
sw $s2, 8($a1)
sw $s3, 12($a1)
我建议您下载 MIPS32™ Architecture For Programmers
第二卷:MIPS32™ 指令集.
我编写了程序以从用户那里获取 4 个值并存储它。但是我不知道如何将它放入 'list' (.space):
.data
list: .space 16
msg: .asciiz "Enter 4 numbers: "
.text
main:
la $a0,msg # display prompt string
li $v0,4
syscall
li $v0, 5 # read integer
syscall
add $s0, $v0, $zero #store input1 to s0
li $v0, 5 # read integer
syscall
add $s1, $v0, $zero #store input2 to s1
li $v0, 5 # read integer
syscall
add $s2, $v0, $zero #store input3 to s2
li $v0, 5 # read integer
syscall
add $s3, $v0, $zero #store input4 to s3
exit:
li $v0, 10 # exit system call
sysca
I can't figure out how to put it into the 'list'
通过将数组的基地址加载到某个寄存器,然后使用sw
指令将数据存储在那里:
la $a1, list
# ... read the integers ...
sw $s0, 0($a1)
sw $s1, 4($a1)
sw $s2, 8($a1)
sw $s3, 12($a1)
我建议您下载 MIPS32™ Architecture For Programmers 第二卷:MIPS32™ 指令集.