Ok так что я эту простую программу MIPS32:Fetch адрес не выровнен по границе слова, MIPS32
.text
.globl main
main:
lw $s3,10
move $a0,$s3
li $v0,1
syscall
li $v0,10
syscall #program termination
Все, что я хочу сделать, это загрузить зарегистрировать $ s3 номер 10, а затем распечатать it.Mars монтирует это без ошибок, но когда я ударил запустить я получаю следующее сообщение об ошибке:
Runtime exception at 0x00400000: fetch address not aligned on word boundary 0x0000000a
Я понимаю, что что-то не так с
lw $s3,10
, но мне не важно, как это исправить. Что я не понимаю, это ошибка: выборка адрес не выровнен на границе слова. Что это значит? И почему это происходит?
Вы можете читать только по адресам памяти с выравниванием по словам. В MIPS32 слова составляют 4 байта. Таким образом, адрес памяти должен быть выровнен по 4 байт. –