Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы по Архитектуре / 9305_АникинаАА.docx
Скачиваний:
37
Добавлен:
03.06.2014
Размер:
629.5 Кб
Скачать

2.2.5. Выбор форматов команд

При выборе форматов следует исходить из принципов RISC-обработки, в соответствии с которыми используется минимальное число форматов команд.

Способы адресации

Адресация – процесс определения, где находится операнд.

  1. Непосредственная

в адресной части содержится сам операнд. Такой операнд называется непосредственным операндом, поскольку он автоматически вызывается из памяти одновременно с командой; следовательно, он сразу непосредственно становится доступным

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

КОП

Операнд

  1. Относительная

В команде содержится смещение, адрес формируется суммированием базового адреса со смещением.

КОП

Адрес базового регистра

Смещение

  1. Прямая адресация

Обращение за операндом производится по адресному коду в поле команды.

Такой вид адресации удобен, но удлиняет команды

КОП

Исполнительный адрес

  1. Косвенная

В команде явно или неявно указывается регистр процессора, содержащий адрес операнда

В этом случае, команда компактна, но для ее выполнения требуется предварительная загрузка регистра косвенного адреса.

КОП

Адрес регистра

Форматы команд

  1. 16-разрядный формат команд

15

9

8

7

6

5

3

2

0

КОП

CAP

IMM

SCR1

SCR2

КОП – команда операции

CAP - предназначено для определения разрядности форматов данных.

IMM - предназначено для определения количества операндов

SCR1, SCR2 - предназначено для определения местоположения операндов

данный формат команд используется для:

    1. команд, использующих два операнда

Форматы данных

8 разрядные

32 разрядные

64 разрядные

IMM

IMM = 11 - указывает на наличие двух операндов в поле SCR1 и SRC2

CAP (необходим для указания разрядности данных)

0

1

1

SCR1

(необходим для опеределения нахождения первого операнда)

Номер байта в регистре R0

Первый бит в SRC1 = 0

Остальные 2 бита используются для определения слова в регистрах

(R1-R2)

Первый бит в SRC1 = 1

Остальные 2 бита используются для определения номера регистра (R3-R6)

SCR2

(необходим для опеределения нахождения второго операнда)

Номер байта в регистре R0

Первый бит в SRC2 = 0

Остальные 2 бита используются для определения слова в регистрах

(R1-R2)

Первый бит в SRC2 = 1

Остальные 2 бита используются для определения номера регистра (R3-R6)

результат операции записывается в регистр, номер которого указан в SCR1

прямая (регистровая) адресация

    1. команд без операндов

значения поля CAP игнорируется

бит IMM = 00 - команда не содержит операндов

SCR1 – пустое поле

SCR2 – пустое поле

    1. команд c одним операндом ; прямая (регистровая) адресация

IMM = 10 - указывает на наличие одного операнда в поле SCR1 и указывает, что адресация прямая

SCR1 – номер регистра, где находится операнд

SCR2 – пустое поле

результат операции записывается в регистр, номер которого указан в SCR1

Форматы данных

8 разрядные

32 разрядные

64 разрядные

IMM

IMM = 10 - указывает на наличие одного операнда в поле SCR1 и указывает, что адресация прямая

CAP (необходим для указания разрядности данных)

0

1

1

SCR1

(необходим для опеределения нахождения первого операнда)

Номер байта в регистре R0

Первый бит в SRC1 = 0

Остальные 2 бита используются для определения слова в регистрах

(R1-R2)

Первый бит в SRC1 = 1

Остальные 2 бита используются для определения номера регистра (R3-R6)

SCR2 – пустое поле

результат операции записывается в регистр, номер которого указан в SCR1

    1. команд c одним операндом ; косвенная адресация

значения поля CAP игнорируется

IMM = 01 - указывает на наличие одного операнда в поле SCR2 и указывает, что адресация косвенная

SCR1 + SCR2 – номер регистра (или номер сегмента регистра)

адрес операнда находится в регистре R7.

результат операции записывается либо в регистр, либо в память (в зависимости от КОП)

  1. 32-разрядный формат команд

31

25

24

22

21

20

18

17

16

0

КОП

DEST

IMM1

SRC1

IMM2

SRC2

Результат операции записывается в регистр, номер которого указывается в поле DEST

    1. формат команд

DEST – номер регистра для записи результата

IMM1 = 1– указывает, что в поле SCR1 содержится номер регистра с операндом

SRC1 – номер регистра, где содержится первый операнда

IMM2 = 1– указывает, что в поле SCR2 содержится номер регистра с операндом

SRC2 – номер регистра, где содержится второй операнд

используется для команд с двумя операндами

    1. формат команд

используется для команд с одним операндом

(относительная адресация)

DEST – номер регистра для записи результата

IMM1 = 0 – указывает, что в поле SCR1 содержится номер базового регистра

SRC1 – номер регистра, где содержится адрес

IMM2 = 0 – указывает, что в поле SCR2 содержится смещение

SRC2 –смещение

Соседние файлы в папке Материалы по Архитектуре