#memory #io #mips
#память #io #mips
Вопрос:
Для университета я пытаюсь использовать Memory Mapped IO для ввода-вывода 6 символов, сохранить их в буфере, затем распечатать буфер. Приведенный ниже код для получателя, $ t0 — это адрес получателя. Он проверяет, готов ли приемник, если да, получает данные. Прямо сейчас я просто пытаюсь убедиться, что я получаю данные. Итак, я пытаюсь распечатать его, но получаю синтаксическую ошибку, и я не могу понять, почему.
Причина, по которой я думаю, может заключаться в том, что полученный байт несовместим.
lw $t1, 0($t0) # receiver control
andi $t1, $t1,0x0001 # check if ready
beq $t1, $zero,readloop # if not ready
lb $s0, 4($t0) # receiver data
li $v0, 11 # print char
li $a0, $s0 # takes address of string as argument <--- This is where the compiler is saying theres a syntax error
syscall
Комментарии:
1. Очень сложно комментировать фрагменты кода.
2. Ну, что
li $a0, $s0
вообще предполагается делать?li
предназначен для немедленной загрузки и$s0
не является немедленным. Возможно,move
это подходящая инструкция для использования, но трудно сказать, учитывая ограниченную информацию, которую вы нам предоставили.