Как ядро ​​хранит введенную пользователем строку чтения в MIPS? - PullRequest
0 голосов
/ 03 мая 2018

Инструкции по чтению и хранению строкового ввода с клавиатуры не понятны в MIPS. Как строка чтения помещается в пространство имен метки?

.data
    namespace: .space 20
.txt
    li $v0,8
    la $a0,namespace
    li $a1,20
    syscall

1 Ответ

0 голосов
/ 03 мая 2018

Ядро может использовать отображения и адреса памяти пользовательского пространства, и вы передали ему адрес в $a0. Вы также передали длину буфера в $a1, чтобы он знал, сколько байтов ему разрешено хранить.

Таким образом, ядро ​​получает данные с устройства ввода-вывода, а затем использует sw или sb инструкции для их сохранения в переданном вами буфере.

(или, если вы используете MARS / SPIM, syscall перехватывает код интерпретатора / эмулятора / симулятора и вообще не выполняет инструкции MIPS. В отличие от реальной машины MIPS, работающей под управлением Linux или чего-либо еще.)

...