I've tried with both QtSpim 9.1.16 and 9.1.17, all of them "cut" the first 2 chars of an input string, setting them to 0x0, other ASCII chars are correctly saved into buffer. That's my snippet, even though other code I've found on the internet brings to the same result:
.data # ROM area
str_input: .asciiz "Digita la stringa che vuoi controllare (max 10 caratteri): "
.data # RAM area
buffer: .space 11
.text
.globl main
main: li $v0, 4
la $a0, str_input
syscall # syscall to print user message
#------
la $a0, buffer
li $a1, 11
li $v0, 8
syscall
For example, if I type in '12345', that's the memory dump:
User data segment [10000000]..[10040000]
[10000000]..[1000ffff] 00000000
[10010000] 69676944 6c206174 74732061 676e6972 D i g i t a l a s t r i n g
[10010010] 68632061 75762065 6320696f 72746e6f a c h e v u o i c o n t r
[10010020] 616c6c6f 28206572 2078616d 63203031 o l l a r e ( m a x 1 0 c
[10010030] 74617261 69726574 00203a29 3433000a a r a t t e r i ) : . . . 3 4
[10010040] 00000035 00000000 00000000 00000000 5 . . . . . . . . . . . . . . .
[10010050]..[1003ffff] 00000000
Am I missing something about QtSpim?