Дайте опцию компилятора -S, он сгенерирует код сборки. Затем вам нужно будет отредактировать код, чтобы SPIM принял его.
Вам также понадобится g++ -S -fno-delayed-branch
, если вы включите оптимизацию, например -O1
или -Og
, для более удобочитаемого кода. Обычно SPIM конфигурируется для имитации MIPS без интервалов задержки ветвления, но gcc будет предполагать, что инструкция после ветки выполняется, даже если она принята. -fno-delayed-branch
получает gcc для заполнения любых интервалов задержки ветвления nop
.
Еще одна полезная опция - -fverbose-asm
, чтобы gcc добавлял комментарии с именем переменной C каждого операнда.
Вам следует избегать использования библиотек C ++, таких как std::vector
, которые компилируют с большим количеством дополнительного кода по сравнению с локальными массивами, особенно без оптимизации, если только вам не нужны эти функции.