Memory MIPS:设置字符串输入或变量的内存地址偏移量?

Memory MIPS:设置字符串输入或变量的内存地址偏移量?,memory,mips,offset,Memory,Mips,Offset,假设我有以下命令从用户处读取字符串: li $v0,8 syscall add $a0,$v0,$0 sw $a0,8($s1) 如果$s1将地址存储在分配的内存块的开头,那么8的偏移量会偏移多少?是32字节还是取决于我读的内容?例如,如果我正在读取字符,每个字符有1个字节,那么8实际上代表8个字节?首先,您使用的系统调用是错误的。您可以找到有关系统调用的文档,但要进行解释,请将其更改为: la $a0 buffer #where buffer is th

假设我有以下命令从用户处读取字符串:

li $v0,8        
syscall     
add $a0,$v0,$0      
sw $a0,8($s1)

如果$s1将地址存储在分配的内存块的开头,那么8的偏移量会偏移多少?是32字节还是取决于我读的内容?例如,如果我正在读取字符,每个字符有1个字节,那么8实际上代表8个字节?

首先,您使用的系统调用是错误的。您可以找到有关系统调用的文档,但要进行解释,请将其更改为:

la $a0 buffer #where buffer is the address of a pre-allocated buffer
li $a1 30     #where 30 is the length of said buffer
li $v0 8
syscall #no more than 30 characters now in $a0
第二,关于你的问题,偏移量总是以字节为单位