Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Команда центрального процессора состоит из кода операции и одного или нескольких операндов (объектов, над которыми совершается операция). В зависимости от числа операндов, команды подразделяются на:
- безадресные команды – команды, не имеющие операндов или имеющие неявно указанные операнды;
- одноадресные команды – команды производящие операцию над одним объектом или одним явно и одним или несколькими неявно указанными;
- двух- и трехадресные команды (встречаются архитектуры, в которых есть команды и с большим числом операндов).
1.Примеры безадресных команд без операнда:
NOP – No OPeration, отсутствие операции;
HALT – остановка процессора.
2.Примеры безадресных команд с неявно указанными операндами:
RETURN – возврат из подпрограммы (выталкивает из стека адрес возврата и помещает его в счетчик команд);
WDR – WatchDog Reset, сброс сторожевого таймера микроконтроллера;
ADD – вытолкнуть из стека два значения, сложить их и протолкнуть результат в стек;
SCS – Skip if Carry Set, пропустить следующую команду, если бит переноса в слове состояния установлен;
3.Примеры одноадресных команд с одним операндом:
INC x – INCrement, добавить к операнду 1 и сохранить результат по тому же адресу;
TST х TeST – установить в слове состояния флаги знака и равенства нулю в соответствии со значением операнда;
4.Примеры одноадресных команд с неявным операндом:
ADD x [, Асс] – сложить операнд с аккумулятором и сохранить результат в аккумуляторе;
PUSH х – протолкнуть значение операнда в стек;
CALL x – вызов подпрограммы, сохраняет адрес следующей команды в стеке и передает управление по указанному адресу;
BNEQ х – передает управление по указанному адресу, если в слове состояния установлен флаг равенства нулю;
5.Примеры двух- и трехадресных команд:
MOVE x, у – присвоить значение объекта х объекту у;
ADD x, у – сложить х и у, поместить результат в у.
ADD x, у, z - сложить х и у и поместить результат в z;
6.Пример четырехадресной команды:
DIV х, у, z, w – выполняет деление х на у, помещает частное в z, а остаток – в w;
7.Пример шестиадресной команды:
INDEX b, I, h, s, i, a – вычисляет адрес элемента массива, расположенного по адресу b, с нижней и верхней границами индекса I и b соответственно и размером элемента s.
где:
операнд i – индекс элемента;
операнд а – место, куда следует поместить вычисленный адрес.
Количество адресов иногда используют и для общей характеристики системы команд. Двухадресной называют систему команд, в которой команды имеют максимум два операнда, трехадресной – максимум три операнда. Иногда вместо максимального количества операндов, адресность системы команд определяют по количеству операндов у часто используемых команд сложения и вычитания. Таким образом, VAX, из системы команд которого взяты примеры четырех- и шестиадресных команд, часто относят к трехадресным архитектурам.
Одноадресные системы команд обычно используют в качестве неявно заданного операнда выделенный регистр (аккумулятор), или стек. Такие архитектуры называют, соответственно, аккумуляторными и стековыми. Одноадресную аккумуляторную архитектуру имеют микроконтроллеры семейства PIC фирмы Microchip. Большинство современных процессоров имеют двух- и трехадресные системы команд.
На примере стековой команды ADD видно, что многие из команд стековой архитектуры могут обойтись без явно указанных операндов, однако команды проталкивания значений переменных в стек и выталкивания их оттуда все-таки необходимы, поэтому все стековые архитектуры одноадресные, а не безадресные.
Дата публикования: 2014-12-08; Прочитано: 706 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!