Описание тега spim
Он читает и выполняет программы на языке ассемблера, написанные для этого процессора. Также предоставляет простой отладчик и минимальный набор служб операционной системы. Он не выполняет двоичные (скомпилированные) программы.
Spim реализует почти весь расширенный набор инструкций ассемблера MIPS32. (Он пропускает большинство сравнений с плавающей запятой и режимов округления, а также таблицы системных страниц памяти.) Архитектура MIPS имеет несколько вариантов, которые различаются по-разному (например, архитектура MIPS64 поддерживает 64-битные целые числа и адреса), что означает, что Spim не будет запускать программы для всех процессоров MIPS.
Spim реализует как терминал, так и интерфейсы Windows. В Microsoft Windows, Linux и Mac OS X программа spim предлагает простой терминальный интерфейс, а программа QtSpim предоставляет оконный интерфейс. Старые программы xspim и PCSpim также предоставляют оконные интерфейсы для этих систем.
Читать дальше
Информация о системном вызове:
SPIM моделирует ряд функций уровня операционной системы для консольного ввода-вывода (например, print_int
, print_string
, read_string
), файловый ввод-вывод (например, open
, read
), распределение динамической памяти (sbrk
) и т. д. Эти функции вызываются путем настройки регистров ЦП в соответствии с документацией системного вызова SPIM, а затем выполненияsyscall
инструкция.
Слоты задержки перехода:
Цитата из MIPS32™ Architecture for Programmers Volume I: Introduction to the MIPS32™ Architecture":
Все ветви имеют архитектурную задержку в одну инструкцию. Команда, следующая сразу за переходом, называется слотом задержки перехода.
На английском языке: инструкция, следующая сразу за инструкцией перехода (перехода), будет выполнена до того, как выполнение продолжится по адресу, к которому вы переходите.
При написании кода на языке ассемблера MIPS следует позаботиться о том, чтобы заполнить слоты задержки ветвления либо NOP, либо более значимыми инструкциями, изменив порядок или некоторые инструкции.
Однако обратите внимание, что SPIM по умолчанию не моделирует интервалы задержки ветвления. Если желательно моделирование интервалов задержки перехода, это можно включить в "Симулятор" -> "Настройки.." (PCSpim) или "Симулятор" -> "Настройки" -> "MIPS" (QtSpim). Включение опции "Bare machine" также включает имитацию слота задержки перехода.