Как я могу выполнять программы сборки MIPS на Linux x86?

Существуют ли какие-либо интерпретаторы командной строки или любой другой набор программ для x86 linux для запуска программ сборки MIPS?

Я хотел бы иметь возможность писать простые программы сборки MIPS и запускать их с консоли на моем локальном компьютере.

Я знаю о SPIM, но это требуется X Windows, и мне любопытно, есть ли варианты получше.

Обновлено: оказывается, для этого не требуется X Windows. У меня все еще есть проблемы с SPIM. На мой скромный взгляд, не самый лучший. Скомпилированный набор инструментов Qemu / Cross - это немного больше работы, но у меня меньше причуд.

Также не существует такой вещи, как «X windows».

XTL 18.12.2014 13:43

@XTL X-Windows - неофициальное название X11 или X

Michael Petch 29.01.2016 19:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
16
2
19 702
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Может, можно взглянуть на эти эмуляторы? Я не эксперт, но список неплохой.

При этом основное внимание уделяется эмуляции системы, а не пользовательской среде. То есть, эта ссылка хороша, если вы хотите эмулировать полный блок MIPS, а не только данное приложение MIPS.

Serafina Brocious 21.01.2009 10:28

QEmu имеет хороший эмулятор MIPS. Объедините это с кросс-скомпилированным GCC / binutils (технически вам нужны только binutils для получения GAS, ассемблера GNU), и все готово.

О, и еще раз привет. Похоже, мы оба придурки-эмуляторы с одинаковым графиком сна;)

Serafina Brocious 21.01.2009 10:24

@Cody Brocious, Привет, лол. Вы написали свой собственный дизассемблер или ассемблер? Стоит ли писать как учебное упражнение? У меня так много вопросов, которые я хочу задать вам, лол.

mmcdole 21.01.2009 10:37

Я делал и то, и другое в разных случаях (написал немало дизасмов во время разработки декомпилятора). Не стесняйтесь НАПРАВЛЯТЬ меня в bloomfilter, чтобы задать любые вопросы, которые у вас есть.

Serafina Brocious 21.01.2009 10:38

Кстати, Spim не требует X Windows. У него также есть консольный интерфейс. Запустите либо spim, либо xspim.

У xspim теперь есть своя изюминка: «Назвали 90-е - они хотят вернуть свой графический интерфейс».

new123456 30.06.2011 03:55
Ответ принят как подходящий

Вам понадобится либо набор инструментов для кросс-компиляции, либо для создания собственных кросс-binutils. Для готовой цепочки инструментов вы можете посетить исходный код. Если вы просто хотите скомпилировать сборку, то все вам нужен binutils. На вики-странице Linux Mips есть несколько рекомендаций.

Что касается эмуляции, я бы выбрал QEmu.

Qemu + CodeSourcery удовлетворяет все потребности!

Nils Pipenbrinck 27.01.2009 22:10

Вчера я был в такой же ситуации. Мне тоже не понравился СПИМ, вот что я сделал:

  • установлен gxemul и gxemul-doc (это имена пакетов в debian)
  • установил netbsd на эмулируемую машину MIPS, следуя подробным инструкциям в документации
  • Поскольку netbsd уже включает стандартную цепочку инструментов gcc и vi, все готово.

    Настройка сети довольно проста и хорошо задокументирована. Это имеет то преимущество, что вам не нужно возиться с кросс-компиляцией.

  • Если вы когда-нибудь окажетесь без них, я обнаружил, что MARS намного лучше SPIM. Это файл Java .jar, поэтому он работает в Linux / Windows. Причина, по которой мне это нравится, заключается в том, что он имеет встроенный отладчик, и я могу пошагово просмотреть свой код или взлом кода и увидеть значения всех регистров. Помогает тонну в отладке.

    mmcdole 17.03.2009 22:19

    Спасибо, на самом деле это то, что использует наш университет. Но я хотел иметь возможность вызывать c-функции из ассемблерного кода, и я не думаю, что MARS поддерживает это. ;) Также приятно иметь возможность проверить вывод "gcc -S somecprog.c".

    Kim Stebel 18.03.2009 07:40

    Где ты взял ISO для FreeBSD? Я вижу, что он активно развивается, но не вижу, где взять образ компакт-диска. Я все равно пробую Debian сейчас.

    new123456 23.06.2011 06:10

    Вы можете использовать gxemul, который имитирует машину MIPS (среди прочего, включая Dreamcast) и может запускать многие операционные системы (включая linux, netbsd и некоторые другие).

    gxemul-wikipedia

    gxemul-домашняя страница

    МАРС значительно упростил мое программирование сборки для архитектуры MIPS. Если вам нужен графический интерфейс / IDE, я бы обязательно порекомендовал MARS.

    Предполагая, что вы хотите использовать GCC.

    Шаги по компиляции для MIPS в системе x84-64 и последующему запуску исполняемого файла с помощью эмулятора:

    1. Используйте набор инструментов кросс-компиляции для создания исполняемого файла.

      • Если вы используете Debian / Ubuntu, установите набор инструментов кросс-компиляции для MIPS. Например, любой из этих пакетов APT: gcc-mips-linux-gnu (обратный порядок байтов в MIPS) или gcc-mipsel-linux-gnu (обратный порядок байтов в MIPS).

      • Скомпилировать с использованием mips-linux-gnu-gcc (mipsel-linux-gnu-gcc для MIPS с прямым порядком байтов); собрать с помощью mips-linux-gnu-as; ссылка с помощью mips-linux-gnu-gcc.

    2. Запустите исполняемый файл с помощью эмулятора.

      • Установите эмулятор, который может запускать процессы Linux, скомпилированные для одного процессора (например, MIPS) на другом процессоре (например, x84-64): sudo apt-get install qemu-user.
      • Запустите исполняемый файл, скомпилированный для MIPS, с помощью эмулятора: qemu-mips ./a.out (или qemu-mipsel ./a.out для MIPS с прямым порядком байтов). Также работает простой запуск ./a.out; будет использоваться эмулятор.

    Другие вопросы по теме