Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_СИИ.doc
Скачиваний:
34
Добавлен:
09.11.2019
Размер:
917.5 Кб
Скачать

7.2.5 Регистры процессора

Все регистры процессора NM6403 можно разделить на группы:

  • адресные регистры;

  • регистры общего назначения;

  • специальные регистры;

  • векторные регистры.

7.2.5.1 Основные регистры

К основным регистрам процессора относятся адресные регистры и регистры общего назначения, то есть те, которые используются в большинстве вычислительных операций процессора.

Всего имеется 8 адресных регистров и 8 регистров общего назначения (см. Табл. 1-3). Все они 32-х разрядные, доступны как по чтению, так и по записи.

Табл. 1-3 Основные регистры процессора NM6403.

Адресные регистры

Регистры общего назначения

ar0

ar1

ar2

ar3

ar4

ar5

ar6

ar 7(sp)

gr0

gr1

gr2

gr3

gr4

gr5

gr6

gr 7

Адресные регистры

Адресные регистры делятся на две равноправные группы. В первую входят ar0 .. ar3, а во вторую ar4..ar7. Это связано с наличием двух адресных устройств в процессоре.

Существуют ограничения на возможность использовать адресные регистры из разных групп в одной процессорной инструкции.

Адресные регистры могут использоваться только в левой части ассемблерной инструкции.

Примеры использования адресных регистров:

ar0 = ar5; // копирование.

ar2 = ar3 + gr3; // модификация.

[ar4++] = gr7 with gr7 -= gr4 ; // запись в память.

Адресный регистр ar7 используется процессором в качестве указателя стека адресов возврата sp(Stack Pointer). Это означает, что ar7 модифицируется автоматически, когда происходит вызов функции или прерывания, а также возврат из функции или из прерывания.

Регистры общего назначения

Регистры общего назначения в отличии от адресных не имеют разделения на группы, могут использоваться как в левой, так и в правой частях ассемблерной инструкции. С их помощью можно выполнять арифметические и логические преобразования, адресоваться по памяти.

Хотя регистры общего назначения могут использоваться для адресации по памяти, например:

[gr0] = gr4; // запись значения регистра gr4 в память

// по адресу, хранящемуся в gr0.

однако адресные регистры обладают в этом смысле значительно более широкими возможностями.

Примеры использования регистров общего назначения:

gr0 = gr5; // копирование.

gr2 = gr1 + gr3; // модификация.

[ar4++] = gr7 with gr7 -= gr4 ; // запись в память.

Примечание В процессоре NM6403 не предусмотрены специальные регистры для организации программных циклов.

7.2.5.2 Регистровые пары

Каждому адресному регистру поставлен в соответствие регистр общего назначения с тем же номером. Таким образом, образуются пары, которые в дальнейшем будут называться регистровыми парами.

Регистровые пары часто используются в инструкциях процессора, осуществляющих копирование, чтение/запись в память 64-х разрядных данных, некоторые виды адресных операций.

Приведем пример загрузки из памяти в регистровую пару 64-х разрядного значения:

ar0, gr0 = [ar1++]; // чтение 64-х разрядного слова.

Еще один пример использования регистровых пар встречается в некоторых методах адресации, например:

[ar0+=gr0] = gr4; // запись в память с модификацией.

Непарные регистры не могут использоваться в подобных операциях. Иными словами:

ar0, gr1 = [ar1++]; // неправильная инструкция.

[ar0+=gr1] = gr4; // неправильная инструкция.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]