Как прочитать строку в мипс, который состоит из нескольких символов - PullRequest
0 голосов
/ 16 октября 2019

Я нашел этот код:

.data
   buffer: .space 20

...
_readString:
        li $v0, 8           # Syscall 8: Read string
        la $a0, buffer          # load byte space into address
        addi $a1, $zero, 20         # allot the byte space for string
        syscall
        jr   $ra

Но я не понимаю этого. Что делают линии la и addi? Означает ли буферное пространство в 20 символов 20 символов?

Я нашел подобный код в уроке MIPS моего класса:

li $v0, 8 - syscall code for reading a string
la $a0, buffer - load buffer address into register
li $a1, 20 - max. bytes for syscall to read
move $t0, $a0 - move string to $t0 to do something with it
syscall

Но почему происходит перемещение $ a0 (предполагаемое место, гдестрока будет сохранена) произойдет до системного вызова? Почему это имеет смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...