MIPS: инструкция загрузки байта - PullRequest
0 голосов
/ 30 мая 2019

Предположим, что процессор выполняет следующую инструкцию:

lb $t3,-7($s0)

Кроме того, предположим, что приведенная выше инструкция расположена по адресу 0x004000f0, регистр $t3 содержит значение 0x20040144, и этот регистр$s0 содержит значение 0x305502db.Какое значение имеет регистры $t3 после того, как инструкция завершена?

Из моих вычислений:

Формат инструкции:

lb RegDest, Offset(RegSource)

мы знаем $s0 содержит значение 0x305502db, которое приводит к 0x305502db - 7 = 0x305502d4, и это значение будет загружено в $t3.Я сейчас запутался здесь, потому что правильный ответ говорит $t3 = unknown, как получилось?

1 Ответ

1 голос
/ 31 мая 2019

0x305502db - 7 = 0x305502d4

... поэтому инструкция lb будет загружать байт из памяти (например, RAM) по адресу 0x305502d4, расширять его знакоми записать его в регистр $t3.

Если в ОЗУ содержится значение 0x5A по адресу 0x305502d4, $t3 будет содержать значение 0x0000005A.Если он содержит значение 0xA5, $t3 будет содержать значение 0xFFFFFFA5.

... правильный ответ говорит $t3 = unknown, как получится?

Ваше упражнение не содержит никакой информации о содержимом ОЗУ по адресу 0x305502d4.

Поэтому вы не можете сказать, какое значение будет содержать $t3.

...