Кодирование основных форматов команд в MIPS - PullRequest
0 голосов
/ 18 ноября 2018

Я хотел бы выяснить, как кодировать ОСНОВНЫЕ ФОРМАТЫ ИНСТРУКЦИИ, указанные в MIPS Green Sheet например, я хотел бы закодировать инструкцию add $t0 $t1, $t2.

Я знаючто формат R;код операции будет 0x0;Funct 0x20.

Но как мне получить код для rs, rt, rd и shamt?

1 Ответ

0 голосов
/ 19 ноября 2018

Ссылка в вопросе искажена.Это должно быть https://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_Green_Sheet.pdf

Если вы посмотрите в поле ИМЯ РЕГИСТРАЦИИ, НОМЕР, ИСПОЛЬЗОВАНИЕ, КОНВЕНЦИЯ О ВЫЗОВЕ в правом нижнем углу страницы 1 этого PDF-файла, вы увидите, чторегистры с именами от $t0 до $t7 соответствуют регистрам, пронумерованным с 8 по 15. Для интересующей вас инструкции:

    add $t0, $t1, $t2

$t0 - регистр назначения, заданный rd поле в инструкции.Поскольку $t0 является регистром № 8, поместите 01000 в поле rd.

$t1 и $t2 являются исходными регистрами, указанными в полях rs и rt вИнструкция.Поскольку $t1 является регистром № 9, а $t2 является регистром № 10, введите 01001 в поле rs и 01010 в поле rt.

shamt неиспользуется в инструкции add, поэтому заполните это поле нулями.

Кстати, зеленый лист отлично подходит для напоминания о мельчайших подробностях набора инструкций, но что-то вроде https://www.cs.ucsb.edu/~franklin/64/lectures/mipsassemblytutorial.pdf будет более полезным, если вы только начинаете работать с архитектурой MIPS.

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