MIPS: различия между версиями
Sauron (обсуждение | вклад) (источники) |
Sauron (обсуждение | вклад) (→Регистры: оформление) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 2: | Строка 2: | ||
== Регистры == | == Регистры == | ||
Процессор MIPS содержит 32 регистра общего назначения, счётчик команд, специальные регистры HI и LO. | Процессор MIPS содержит 32 регистра общего назначения, счётчик команд, специальные регистры HI и LO. Регистры обозначаются <code>r0</code>-<code>r31</code>. Регистр <code>r0</code> доступен только для чтения и содержит константу 0. По соглашению, для регистров общего назначения существуют псевдонимы: | ||
{| class="wikitable" border="1" | |||
|- | |||
! Номер | |||
! Псевдоним | |||
! Описание | |||
|- | |||
| 0 | |||
| <code>$zero</code> | |||
| Константа 0 | |||
|- | |||
| 1 | |||
| <code>$at</code> | |||
| Зарезервировано для ассемблера | |||
|- | |||
| 2—3 | |||
| <code>$v0-v1</code> | |||
| | |||
|- | |||
| 4—7 | |||
| <code>$a0-a3</code> | |||
| | |||
|- | |||
| 8—15 | |||
| <code>$t0-t7</code> | |||
| | |||
|- | |||
| 16—23 | |||
| <code>$s0-s7</code> | |||
| | |||
|- | |||
| 24—25 | |||
| <code>$t8-t9</code> | |||
| | |||
|- | |||
| 26—27 | |||
| <code>$k0-k1</code> | |||
| Зарезервировано для ядра операционной системы | |||
|- | |||
| 28 | |||
| <code>$gp</code> | |||
| Указатель на глобальные данные | |||
|- | |||
| 29 | |||
| <code>$sp</code> | |||
| Указатель стека | |||
|- | |||
| 30 | |||
| <code>$fp</code> | |||
| Указатель на кадр локальных данных | |||
|- | |||
| 31 | |||
| <code>$ra</code> | |||
| Адрес возврата из процедуры | |||
|} | |||
== Управляющий сопроцессор == | == Управляющий сопроцессор == | ||
В состав CPU, как правило, входит управляющий сопроцессор. Он предназначен для управления памятью, исключениями, отладкой, запроса идентификации процессора. В состав сопроцессора входят несколько десятков (точное число зависит от реализации) управляющих регистров. | В состав CPU, как правило, входит управляющий сопроцессор. Он предназначен для управления памятью, исключениями, отладкой, запроса идентификации процессора. В состав сопроцессора входят несколько десятков (точное число зависит от реализации) управляющих регистров. | ||
Также этот сопроцессор ответственен за механизм внутрисхемной отладки [[EJTAG]]. EJTAG предназначен для отладки ПО, выполняющегося на MIPS-процессоре через подключение посредством [[JTAG]]. EJTAG стандартизирован в документах MIPS EJTAG Specification. | |||
== Ссылки == | == Ссылки == | ||
Строка 12: | Строка 69: | ||
* [http://www.cs.cornell.edu/courses/cs3410/2008fa/MIPS_Vol2.pdf Volume II: The MIPS32™ Instruction Set] | * [http://www.cs.cornell.edu/courses/cs3410/2008fa/MIPS_Vol2.pdf Volume II: The MIPS32™ Instruction Set] | ||
* [http://www.cs.cornell.edu/courses/cs3410/2008fa/MIPS_Vol3.pdf Volume III: The MIPS32™ Privileged Resource Architecture] | * [http://www.cs.cornell.edu/courses/cs3410/2008fa/MIPS_Vol3.pdf Volume III: The MIPS32™ Privileged Resource Architecture] | ||
[[Категория:Микропроцессоры]] |
Текущая версия от 20:10, 16 августа 2017
MIPS — 32-битная RISC-архитектура процессоров.
Регистры
Процессор MIPS содержит 32 регистра общего назначения, счётчик команд, специальные регистры HI и LO. Регистры обозначаются r0
-r31
. Регистр r0
доступен только для чтения и содержит константу 0. По соглашению, для регистров общего назначения существуют псевдонимы:
Номер | Псевдоним | Описание |
---|---|---|
0 | $zero
|
Константа 0 |
1 | $at
|
Зарезервировано для ассемблера |
2—3 | $v0-v1
|
|
4—7 | $a0-a3
|
|
8—15 | $t0-t7
|
|
16—23 | $s0-s7
|
|
24—25 | $t8-t9
|
|
26—27 | $k0-k1
|
Зарезервировано для ядра операционной системы |
28 | $gp
|
Указатель на глобальные данные |
29 | $sp
|
Указатель стека |
30 | $fp
|
Указатель на кадр локальных данных |
31 | $ra
|
Адрес возврата из процедуры |
Управляющий сопроцессор
В состав CPU, как правило, входит управляющий сопроцессор. Он предназначен для управления памятью, исключениями, отладкой, запроса идентификации процессора. В состав сопроцессора входят несколько десятков (точное число зависит от реализации) управляющих регистров.
Также этот сопроцессор ответственен за механизм внутрисхемной отладки EJTAG. EJTAG предназначен для отладки ПО, выполняющегося на MIPS-процессоре через подключение посредством JTAG. EJTAG стандартизирован в документах MIPS EJTAG Specification.
Ссылки
MIPS32™ Architecture For Programmers