Описание тега mips
MIPS - это распространенный RISC (компьютер с сокращенным набором команд) ISA (архитектура набора команд), один из первых в своем роде. В настоящее время MIPS может относиться как к аппаратной реализации ISA, так и к самому языку ассемблера. MIPS тег применим к обоим, хотя большинство вопросов, вероятно, связаны с языком ассемблера. Первоначально MIPS расшифровывалось как "Микропроцессор без взаимосвязанных этапов конвейера", хотя современные реализации MIPS теперь имеют этапы взаимосвязанного конвейера.
Процессоры MIPS имеют две разновидности порядка байтов: и обратный, и прямой порядок байтов (часто называемыйmipsel
), поэтому было бы полезно применить один из этих тегов. Многие распространенные современные процессоры типа "система на кристалле", работающие под управлением Linux и часто встречающиеся в таких устройствах, как потребительские маршрутизаторы / устройства Wi-Fi, IP-камеры и другие встроенные системы, используют архитектуру MIPS, включая многие Broadcom, Atheros и Ralink SOC.
Обзор:
- Обзор Википедии: история, семейства процессоров, формат инструкций, соглашения об использовании регистров
- Архитектура MIPS 32: обзор производителя и ссылки на справочные руководства
- Архитектура MIPS 64: то же самое для 64-битных процессоров (на панели навигации есть ссылки для microMIPS, DSP ASE, MT, SmartMIPS, MIPS16, MIPS-3D, MCU ASE)
Ссылки на наборы инструкций:
Архитектура MIPS32™ для программистов Том II: Набор инструкций MIPS32™ - это название документа, в котором перечислены и описаны все инструкции в наборе инструкций MIPS32 вместе с их кодировками. Его можно найти по ссылке на архитектуру MIPS 32 выше или через поисковую систему.
Архитектура MIPS64™ для программистов Том II: Набор инструкций MIPS64™ - это название того же документа для набора инструкций MIPS64.
(отсутствуют некоторые инструкции) Классический набор инструкций MIPS I (не включая псевдо-инструкции); включает машинное кодирование и перечисляет ширину непосредственных операндов. Отсутствует хотя бы инструкция NOR, не знаю, что еще. (TODO: найдите краткий справочник, который включает все инструкции, не относящиеся к псевдо-MIPS I.)
- Руководство по MIPS R3000 (MIPS II) от 1994 года. Глава 9 включает в себя таблицу набора инструкций (включая расширения для псевдо-инструкций) и синтаксис C для того, что она делает. Удобно видеть последовательности для
abs
а такжеneg
, а также какие инструкции являются настоящими машинными инструкциями. - См. Раздел "Запуск MIPS", особенно главу 8. Полное руководство по набору инструкций MIPS. Таблица 8.6 содержит кодировки и время введения каждой инструкции. (MIPS II, III, IV и некоторые специальные инструкции для конкретных микросхем MIPS.) Включает инструкции обслуживания TLB, инструкции вероятности ветвления MIPS II (слот задержки перехода NOP, если он не используется) и инструкции FP. Это настоящая книга, поэтому в ней есть целые разделы, объясняющие, как использовать / как это работает / почему это имеет смысл для таких вещей, как инструкции unaligned-load. Но, похоже, у него нет MIPS32 или чего-то более нового, чем MIPS IV.
Запуск / отладка кода сборки MIPS:
Курсы университетов / колледжей, которые включают программирование на языке ассемблера MIPS, часто используют симуляторы MIPS, такие как spim или mars-simulator, чтобы студенты могли запускать свои программы. Эти симуляторы включают в себя функции отладки, такие как пошаговое выполнение, точки останова и средства просмотра регистра / памяти, которые помогают разработчикам понять поведение своего кода во время выполнения.
Прежде чем отправлять вопрос с просьбой о помощи по отладке, вы должны попытаться отладить свою программу самостоятельно. Даже если вам не удалось найти ошибки, ваша первоначальная попытка отладки, вероятно, помогла вам сузить потенциальные источники проблем и лучше понять ваш собственный код. Ваши выводы должны быть подробно изложены в вашем вопросе, чтобы людям, пытающимся ответить на ваш вопрос, не пришлось дублировать вашу работу.