Текущее справочное руководство по набору инструкций бесплатно: Архитектура MIPS® для программистов
Том II-A: Инструкция MIPS32®
Установить ручной . Эта ссылка - Редакция 6.06
15 декабря 2016 г. (т.е. это документы MIPS32, выпуск 6 ).
Он документирует все инструкции пользователя и режима супервизора / режима ядра, а также все с плавающей точкой, во всех подробностях, включая кодирование их машинного кода, а также раздел «Операция», в котором показано, что они делают. Он по-прежнему документирует все инструкции, которые были удалены в выпуске 6 MIPS32 (выпуск 6 MIPS32 также перемещал множество кодов операций, и это хорошо задокументировано).
См. https://www.mips.com/products/architectures/mips32/ для последней версии. На mips.com есть раздел, посвященный «классическим ядрам», но, похоже, он все еще возвращает нас к MIPS32, а не к историческим вещам.
Пример раздела «доступность и совместимость» для balc
(Branch and Link Compact: нет интервала задержки ветвления, а GRP31 - неявное назначение, освобождающее 26 бит для offset<<2
):
Эта инструкция введена и требуется начиная с версии 6.
Инструкция по выпуску 6 BALC
занимает ту же кодировку, что и предварительная версия 6
инструкция SWC2
. Инструкция SWC2
была перемещена в COP2
основной код операции в MIPS Release 6
или для LDXC1 fd, index(base)
(загрузить двойное слово, индексируемое в число с плавающей запятой)
Эта инструкция была удалена в Выпуске 6.
Требуется во всех версиях MIPS64 начиная с MIPS64 Release 1. Недоступно в MIPS32 Release 1. Требуется в
MIPS32 Release 2 и все последующие версии MIPS32. Когда требуется, требуется, когда присутствует FPU,
32-разрядный или 64-разрядный FPU, в режиме регистрации 32-разрядного или 64-разрядного FP (FIRF64 = 0 или 1, StatusFR = 0 или 1).
Для исторических вещей я нашел набор инструкций MIPS IV
Редакция 3.2
Сентябрь 1995 года на веб-странице cmu.edu. В нем перечислены, когда были введены инструкции, например, MIPS I для div
, MIPS III для dmult
и другие 64-разрядные инструкции, MIPS II для ll
/ sc
.