Как узнать формат MIPS-инструкции R, I или J

Как узнать, является ли код операции инструкции MIPS Register, Imidiate или Jump? Учитывая эту таблицу из книги, но есть ли способ определить формат кода операции?

http://i.imgur.com/uNK6eby.png


person user3025956    schedule 02.12.2013    source источник


Ответы (1)


Взгляните на биты кода операции — самые значащие 6 бит. В C, если n является 32-битным двойным словом команды, выражение для кода операции будет (n >> 26) & 0x3f.

Если код операции равен 0, то это команда регистрации.

Если это 2 (j), 3 (jal) или 26 (trap) - это прыжок.

Остальное немедленно.

Шпаргалка по кодированию MIPS, включая список всех кодов операций, доступна здесь и, возможно, в другом месте.

person Seva Alekseyev    schedule 02.12.2013
comment
я знаю, что первые 6 бит говорят об опкоде, и его 64 разных бита. Судя по картинке, которую я приложил, вы можете объяснить немного лучше? - person user3025956; 03.12.2013
comment
@dwelch Я понимаю таблицу, но чего я не понимаю, так это того, что написал Сева. его ответ - это ответ на мой вопрос, но мне все еще нужен кто-то, чтобы объяснить это. - person user3025956; 03.12.2013
comment
Я говорю, что формат инструкции можно вывести из поля opcode. Все известные коды операций задокументированы; некоторые соответствуют I-операциям, некоторые R, некоторые J. - person Seva Alekseyev; 03.12.2013