Система команд компьютера.
Режимы адресации и форматы команд
Адресация.
Непосредственный
Прямой
Косвенный
Регистровый
Косвенный через регистр
Со смещением
Стековый
Непосредственный
Команда
Операнд
Значение операнда (О) = содержимому адресного поля в коде команды (А)
Прямой
Команда
Содержимое адресного поля в
коде
команды Память
Операнд
Исполнительный адрес ячейки, в которой находится операнд (ЕА) = содержимому адресного поля в коде команды (А)
Косвенный
|
Команда |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
Содержимое адресного поля в коде команды |
|
|
|||||||
|
|
|
|
|
|
|
|
|
Исполнительный адрес ячейки, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Память |
в которой находится операнд (ЕА) = |
||||
|
|
|
|
|
|
|
|
|
(содержимому адресного поля в коде |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
Операнд |
|
|
|
команды (А)) |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистровый
R
операнд
Регистры
R- содержимое адресного поля в коде команды, которое ссылается на определенный регистр процессора
Исполнительный адрес ячейки, в которой находится операнд (ЕА) =
содержимому адресного поля в коде команды, которое ссылается на
определенный регистр процессора (R)
Косвенный через регистр
ЕА=(R)
Исполнительный адрес ячейки, в которой находится операнд (ЕА) = (содержимому адресного поля в коде команды, которое ссылается на определенный регистр процессора (R))
R
Память
операнд
Регистры
R- содержимое адресного поля в коде команды, которое ссылается на определенный регистр процессора
Со смещением
команда
R A
+
регистры
ЕА=А+(R)
Исполнительный адрес ячейки, в которой находится операнд (ЕА) =
содержимое адресного поля в коде команды
+
(содержимому адресного поля в коде команды,
которое ссылается на определенный регистр процессора (R))
R - содержимое адресного поля в коде команды, которое ссылается на определенный регистр процессора A- содержимое адресного поля в коде команды
Адресация со смещением:
Относительная адресация - неявно указываемым регистром является счетчик программы (PC), т.е. для вычисления исполнительного адреса суммируются содержимое адресного поля команды и адрес текущей команды.
Адресация через регистр базы - содержимое полей команды интерпретируется следующим образом: указанный регистр содержит адрес в памяти., а адресное поле - смещение относительно этого адреса
Режим адресации через регистр базы также учитывает свойство локализации ссылок, и является средством сегментации памяти -
специальный базовый регистр , используемый в этот режиме неявно для хранения адреса сегмента
Индексная адресация - содержимое адресного поля указывает адрес в оперативной памяти, а содержимое указанного в команде регистра содержит положительное смещение относительно этого адреса.
Индексная адресация
Автоиндексация - автоматическое приращение регистров выполняется неявно при каждом обращении.
Автоиндексация с положительным приращением - в качестве индексного регистра используется любой регистр общего назначения , операция автоиндексации специфицируется отдельным битом в коде команды
ЕА=А+(R)
Исполнительный адрес ячейки, в которой находится операнд (ЕА) = содержимое адресного поля в коде команды + (содержимому адресного поля в коде команды, которое ссылается на определенный регистр процессора (R))
R---(R) + 1
Постиндексация - EA=(A) +(R) Сначала содержимое адресного поля используется для извлечения адреса их памяти, а затем полученный адрес индексируется содержимым индексного регистра.
Преиндексация - ЕА = (А+(R)) Сначала, как при обычной индексной адресации, к содержимому адресного поля прибавляется содержимое индексного регистра, но результат используется не как исполнительный адрес операнда, а как адрес ячейки , в которой находится исполнительный адрес операнда.
Стековая
команда
R
неявно
Верхняя ячейка стека
Для размещения стека в памяти резервируется специальная область.
Элементы добавляются в вершину стека таким образом,
что в каждый данный момент времени выделенная для стека область
памяти оказывается заполненной только частично. Со стеком связывается указатель адреса ячейки,
находящейся в вершине стека ( указатель стека).