Я использую что-то вроде SPIMS или MARS с функциями syscall.
Я читаю строку (и это работает, потому что я могу ее распечатать) следующим образом:
li $v0, 8
la $a0, string
li $a1, 256
syscall
Однако у меня возникает проблема с доступом к одному символу строки. Поэтому, если я хочу получить доступ к первому символу и распечатать его, я пытаюсь сделать следующее:
la $t0, string
lb $a0, ($t0)
li $v0, 4
sys call
Если я попробую что-то вроде этого:
la $a0, string
li $v0, 4
syscall
Это распечатает всю строку, поскольку строка указывает на всю строку.
Если я попробую что-то вроде:
la $a0, string
lb $a0, ($t0)
li $v0, 4
syscall
Это даст мне ошибку out of bound. Я не понимаю, почему - разве символ не байт в длину, и это просто загружает первый байт из строки в $a0?
Спасибо