Arrays 字符串数组

Arrays 字符串数组,arrays,string,assembly,mips,Arrays,String,Assembly,Mips,我想写一个程序,用MIPS语言读取和显示字符串数组 但是,我当前的解决方案仅显示我输入的最后一个字符串 有人能帮忙吗 这是我的节目: 您的代码对我来说没有任何意义(数据结构),您能解释一下为什么您认为输入的字符串将存储在数组中,以及如何存储吗?另外,您希望如何存储最终数组?您希望内存中有Nx20固定宽度字符串(即,下一个字符串从上一个字符串的+20偏移开始),还是希望字符串占用最小的空间,并且在每个字符串的开头有一个带指针的数组,即20x“a”数组将只占用40+80=120字节(nul终止的“a

我想写一个程序,用MIPS语言读取和显示字符串数组

但是,我当前的解决方案仅显示我输入的最后一个字符串

有人能帮忙吗

这是我的节目:
您的代码对我来说没有任何意义(数据结构),您能解释一下为什么您认为输入的字符串将存储在数组中,以及如何存储吗?另外,您希望如何存储最终数组?您希望内存中有Nx20固定宽度字符串(即,下一个字符串从上一个字符串的+20偏移开始),还是希望字符串占用最小的空间,并且在每个字符串的开头有一个带指针的数组,即20x“a”数组将只占用40+80=120字节(nul终止的“a”=2B,20x指针=80B),而不是20x20=400字节?并使用模拟器中的内置调试器单步执行当前代码,观察它的功能,并尝试找出您是如何编写此代码的,以及编写此代码时的困惑,并尝试找出您最初想要的内容,我必须在MIPS语言中实现与C语言中结构数组的等效,其中一个结构包含许多字符串和整数。所以我首先尝试在数组中保存字符串,这就是我所做的。在这种情况下我该怎么办?我是MIPS的初学者,如果有人能给我一个例子,说明如何在大学项目中用这种语言实现一系列结构,我将不胜感激。谢谢。在C语言中,这样的数组可以通过不同的方式完成。。。考虑<代码> char字符串[10 ] [200 ];<代码>vs
字符*[10]。。不管你怎么想,先设计你的数据结构。使用固定内存结构或指针获取动态长度值,如字符串。固定内存通常更易于编码,但即使字符串很短,数据也会占用更多内存。在这个阶段(设计数据结构的内存布局),这个问题不局限于汇编程序或MIPS,字节就是无处不在的字节。。。我的意思是,首先研究什么是字节,什么是计算机内存,以及例如C如何将结构存储到内存中。
.data

string: .space 20
array: .space 200
enter: .asciiz "Enter a string:\n"

.text

li $t0,0 
li $t2, 3

loop: 

beqz $t2, display
li $v0,4
la $a0,enter
syscall

la $t1, string
li $v0, 8
move $a0,$t1
li $a1, 20
syscall


sw $a0,array($t0)
addi, $t1,$t1,20
addi $t0,$t0,4
addi $t2,$t2, -1
j loop

display:

li $t2,3
add $t0,$zero,$zero

loop2:
beqz $t2, exit
lw $t3,array($t0)
li $v0,4
move $a0,$t3
syscall
addi $t0,$t0,4
addi $t2,$t2,-1
j loop2

exit:
li $v0, 10
syscall