Лекция 5 Команды микропроцессорного устройства



Цели работы: знакомство со структурой и системой команд микропроцессора.

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

Длина команды как двоичного слова совпадает с длиной слова данных. Однако команды могут иметь длину, равную не только одному, но также двум или трем словам.

Для выполнения команда посылается в регистре команд, дешифратор и схемы управления, где она идентифицируется, в результате чего формируются сигналы, направляемые в другие части МП. С помощью этих сигналов выполняются операции, предписываемые командой.

МП загружает команду в регистр команд в течение цикла выборки. В течение следующего за ним цикла выполнения МП декодирует команду и создает сигналы управления процессом выполнения операций этой команды.

Детальное рассмотрение команды МП показывает, что она должна содержать информацию двух видов. Во-первых, команда должна сообщать МП, что делать (выполнять сложение, очистку, пересылку, сдвиг и т.п.); во-вторых, указывать адрес, т.е. местоположение обрабатываемых данных. Таким образом МП получает от команды информацию не только о том, что делать, но и о том, где находятся данные – объекты манипулирования.

Команда, структура которой изображена на рисунке 5.1, состоит из двух частей: кода операции (КОП) и адреса. КОП сообщает МП, что делать; адрес указывает местоположение данных, участвующих в операции. Если длина команды составляет два или три слова, то первое из них – это КОП, а второе и третье – адрес. Из этого следует сделать вывод, что все команды длиной в одно слово являются безадресными (подробнее об том при описании способов адресации).

Рисунок 5.1 – Структура команд микропроцессора

 

Например

код команды 78 h имеет мнемонику MOV A , B и означает пересылку содержимого регистра «В» в регистр «А»;

код команды 81 h имеет мнемонику ADD С и означает сложение содержимого регистра С и регистра А, результат заносится в регистр А. Аккумулятор (регистр А) во многих операциях явно не указывается, но подразумевается.

В двухбайтовой команде

на первом месте указывается код выполняемой операции, а во втором байте – приводится число, являющееся операндом (если выполняется какая-либо операция), либо номером устройства ввода-вывода (при выполнении операции обмена данными).

Например

код команды 06 h А5 h имеет мнемонику MVI B , А5 h и означает пересылку константы в шестнадцатеричной системе исчисления заданной как А5 h в регистр В.

Байты трехбайтовой команды

имеют следующее назначение:

- первый байт– код операции;

- второй байт – младшие разряды двухбайтового операнда;

- третий байт – старшие разряды двухбайтового операнда.

При этом второй и третий байты используются для указания двухбайтового адреса (команды или ячейки памяти), или двухбайтового операнда при работе с парой регистров.

Например

код команды 3А h 2В h 09 h имеет мнемонику LDA 2 Bh , 09 h и означает пересылку в аккумулятор содержимого ячейки памяти, адрес которой указан как 092В h.

Необходимо еще раз особо подчеркнуть способы задания адресов в КР580 – сначала указывается младшая часть адреса, затем старшая.

 

Любая машинная команда - это машинный код, который определяет:

- операцию;

- указывает на данные.

В адресной части команды хранится адресный код. В большинстве случаев фактическое обращение к данным происходит по физическому (исполнительному) адресу. Обычно физический адрес не совпадает с адресным полем команды, но зависит от него. В общем случае происходит преобразование из адресного кода в физический код - режим (способ) адресации. Способы адресации являются одним из основных архитектурных признаков. В настоящее время известно более двух десятков различных способ адресации и их модификации. Методы адресации и область их применения приведены в таблице 5.1


Таблица 5.1 –Методы адресации

Метод адресации Область применения
Регистровая Требуемое значение в регистре
Непосредственная или литеральная Для задания констант
Базовая со смещением Для обращения к локальным переменным
Косвенная регистровая Для обращения по указателю или вычисленному адресу
Индексная Полезна при работе с массивами
Прямая или абсолютная Полезна для обращения к статическим данным
Косвенная Выбирается значение по указателю
Автоинкрементная Полезна для прохода в цикле по массиву с шагом: В каждом цикле получает приращение
Автодекрементная Аналогична предыдущей. Обе могут использоваться для реализации стека
Базовая индексная со смещением и масштабированием Для индексации массивов

 

Все известные способы адресации данных разделены на две большие группы:

- прямые;

- непрямые.

При прямых способах адресации либо накопительный адрес операнда, либо сам операнд, находятся непосредственно по адресному коду без всякого преобразования. Непрямые способы требуют выполнения процедур формирования физического адреса по адресному коду, для этого в ЭВМ встраивается специальный адресный механизм.

Число команд значительно больше, чем число различных кодов операции, поскольку при формировании команды один и тот же КОП может использоваться при различных способах адресации. Например, большинство МП используют КОП CLEAR . Естественно задать вопрос: очистка чего? Ответ зависит от конкретного набора команд МП. Некоторые МП располагают единственной подобной командой – командой очистки аккумулятора, другие – несколькими командами очистки, такими, как очистка аккумулятора А или В, очистка регистра А, В, С или D, очистка области памяти с адресом N. Как видно из последнего примера, сочетание одного КОП с различными адресами может привести к созданию семи разных команд.

Команды в микропроцессоре в зависимости от места, занимаемого в памяти, могут быть одно-, двух- и трехбайтовыми

Однобайтовые команды

Большинство команд являются однобайтовыми и содержат в себе только код операции.

Например

код команды 78 h имеет мнемонику MOV A , B и означает пересылку содержимого регистра «В» в регистр «А»;

код команды 81 h имеет мнемонику ADD С и означает сложение содержимого регистра С и регистра А, результат заносится в регистр А. Аккумулятор (регистр А) во многих операциях явно не указывается, но подразумевается.

В двухбайтовой команде

на первом месте указывается код выполняемой операции, а во втором байте – приводится число, являющееся операндом (если выполняется какая-либо операция), либо номером устройства ввода-вывода (при выполнении операция обмена данными).

Например

код команды 06 h А5 h имеет мнемонику MVI B , А5 h и означает пересылку константы в шестнадцатеричной системе исчисления заданной как А5 h в регистр В.

Байты трехбайтовой команды

имеют следующее назначение:

- первый байт– код операции;

- второй байт – младшие разряды двухбайтового операнда;

- третий байт – старшие разряды двухбайтового операнда.

При этом второй и третий байты используются для указания двухбайтового адреса (команды или ячейки памяти), или двухбайтового операнда при работе с парой регистров.

Например

код команды 3А h 2В h 09 h имеет мнемонику LDA 2 Bh , 09 h и означает пересылку в аккумулятор содержимого ячейки памяти, адрес которой указан как 092В h.

Необходимо еще раз особо подчеркнуть способы задания адресов в КР580 – сначала указывается младшая часть адреса, затем старшая.


Дата добавления: 2019-09-13; просмотров: 182;