Ассемблер MIPS/Архитектура
Регистры
Стандартный MIPS процессор содержит 32 регистра для работы с целыми числами и 32 регистра для работы с плавающей арифметикой.
| Номер | Название | Описание |
|---|---|---|
| 0 | $zero | Всегда содержит ноль |
| 1 | $at | (assembler temporary) Зарезервировано для сборки |
| 2,3 | $v0,$v1 | (values) Для возвращаемых функциями значений |
| 4-7 | $a0-$a3 | (arguments) Первые четыре параметра для функции |
| 8-15 | $t0-$t7 | (temporaries) Для временных значений |
| 16-23 | $s0-$s7 | (saved values) Для постоянных значений |
| 24,25 | $t8,$t9 | (temporaries) Для временных значений |
| 26,27 | $k0,$k1 | Зарезервированы для обработчика (ядро ОС) |
| 28 | $gp | (global pointer) Указывает на глобальную область |
| 29 | $sp | (stack pointer) Значение равно верхнему адресу стека. |
| 30 | $s8/$fp | (saved values/frame pointer) Для постоянных значений/Указатель на фрейм |
| 31 | $ra | (return address) Возвращаемый адрес |
Для работы с плавающими числами предназначены регистры группы $fx . Также существуют специальные регистры, такие как PC - счётчик команд, HI и LO, используемые при делении и умножении.