ユーザーから文字列を読み取るには、次のようにします。
li $v0,8
syscall
add $a0,$v0,$0
sw $a0,8($s1)
$s1 がメモリの割り当てられたチャンクの先頭にアドレスを格納する場合、8 のオフセットはどのくらいオフセットしますか? それは32バイトですか、それとも私が読んでいるものに依存しますか? たとえば、それぞれ1バイトの文字を読んでいる場合、8は実際には8バイトを表しますか?
まず、syscall の使い方が間違っています。syscalls hereに関するドキュメントを見つけることができますが、言い換えると、次のように変更します。
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
第二に、あなたの質問に関しては、オフセットは常にバイト単位です。