说我有以下内容从用户那里读取字符串:
li $v0,8
syscall
add $a0,$v0,$0
sw $a0,8($s1)
如果$ s1将地址存储在分配的内存块的开头,那么8的偏移量偏移多少呢?它是32字节还是取决于我正在阅读的内容?例如,如果我正在读取每个1字节的字符,那么8实际上代表8个字节?
答案 0 :(得分:0)
嗯,首先,你使用的是syscall错误。您可以在系统调用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
其次,关于你的问题,偏移总是以字节为单位。