Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mIKROPROTsESSORY / LECTMP_2012_part1.doc
Скачиваний:
160
Добавлен:
09.04.2015
Размер:
1 Мб
Скачать
☆

2.5. Форматы команд и способы адресации

Формат данных, которые обрабатывает процессор, зависят от его разрядности. В МП КР580ИК80А данные 8-ми разрядные, в МП К1816ВМ86 - 16-ти разрядные, а для системы, построенной на секционированных процессорах, формат данных зависит от числа каскадно-соединенных БИС МП. Однако всегда первый разряд обозначается D0 , затем D1 - и т.д. Иногда слово данных разделяют на части. Например, восемь разрядов (или байт) данных можно разделить на младший и старший полубайт. Эти 4 разряда удобно в этом случае записывать в шестнадцатеричном виде. Конкретная запись слова данных зависит от вида МП, который используют в МПС.

Формат команд даже в пределах одного МП может изменяться в зависимости от вида команды, способа адресации и т.д. На рис. 2.12 показаны возможные форматы команд для МП КР580ИК80А. Однобайтовая команда содержит как код операции, так и коды РОН, в которые осуществляется пересылка данных. Иногда однобайтовые команды содержат только один код операции (для арифметических и логических операций, операций вызова подпрограмм и возврата из подпрограмм и т.п.). В двухбайтовых командах (рис. 2.12Б) первый байт содержит код операции, а второй содержит конкретную информацию (например, при операции непосредственной загрузки в регистр второй байт содержит данные, которые загружаются). Команды ввода-вывода содержат второй байт - номер устройства. Во втором и третьем байте трехбайтовых команд (рис. 2.12В) могут храниться операнды или адреса переходов. В памяти двухбайтовые и трехбайтовые команды хранятся в соседних ячейках.

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

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

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

Рис. 2.13. Прямая адресация в командах

Рис. 2.14. Непосредственная адресация в командах

Косвенная адресация. При этом для указания адреса операнда используются регистры МП (в МП КР580ВМ80 - например, пара регистров HL). Содержимое этих регистров служит адресом ячейки памяти, в которой находится операнд (рис. 2.15).

Рис. 2.16. Косвенная адресация в командах

2.6. Система команд микропроцессора кр580ик80а

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

По функциональному признаку все команды МП можно подразделить на три группы: команды передачи данных (из регистров МП в память, из регистра в регистр и т.д.), команды управления (команды перехода, изменения отдельных разрядов регистров, команды управления прерываниями и т.д.) и команды обработки данных (арифметические и логические операции, сдвиг и т.д.)

В зависимости от типа МП команды могут быть однобайтовыми, двухбайтовыми или трехбайтовыми (как в системе команд КР580ИК80А). Они могут иметь фиксированную длину (например, для К1801ВМ1 длина команды составляет 16 разрядов). Для микропрограммируемых МП длина микрокоманды меняется в зависимости от принятой структуры МПС (для МП К584ВМ1 длина команды управления ЦПЭ составляет 9 разрядов).

С точки зрения программиста, система команд – это таблица, в которой указаны все необходимые сведения для составления программ.

В Приложении 1 приведена система команд МП КР580ВМ80, в Приложении 2 - система команд ОЭВМ К1816ВЕ51.

Например, для МП КР580ИК80А заголовки столбцов системы команд могут выглядеть так, так показано в табл. 2.6

Таблица 2.6

Пример таблицы системы команд

Мнемоника и операнды

Код операции

Кол-во байт

Кол-во тактов

Описание операции

Признаки

C

AC

Z

P

S

MOV А,В

77

1

4/7

А(В)

-

-

-

-

-

В первом столбце указывается некоторое обозначение команды или группы команд в виде нескольких латинских букв (как правило, это сокращение английского наименования операции). Такое обозначение называется мнемоника. Ее легче запомнить, она обозначает сразу группу операций. После мнемоники через пробел приведены операнды (данные, с которыми оперирует команда). Для данной конкретной системы команд могут встречаться 3 варианта: команда без операндов (только одна мнемоника, когда по логике выполнения самой команды ясно, с какими операндами она работает), с одним операндом (когда работа происходит с одним байтом данных, в этом случае через пробел указывается этот операнд) и с двумя операндами ( например, при сложении двух чисел, в этом случае второй операнд обязательно отделяется от первого запятой).

Операндами в данном случае могут быть следующие 6 типов данных:

  1. Обозначения регистров (обозначается в командах как R1 или R). Для данного вида МП это может быть: B, C, D, E, H, L, M, A.

  2. Байт данных (обозначается как D8), как правило, второй байт команд с непосредственной адресацией.

  3. Номер устройства УВВ, с которым будет обмениваться МП (обозначается, как N и представляет собой второй байт двухбайтовых команд ввода вывода).

  4. Пара регистров (обозначается, как обобщенная пара YZ в командах, а непосредственно в командах может принимать значения: BC, DE, HL, SP, PSW (пара, состоящая из A и F)).

  5. Двухбайтовые данные (обозначаемые как D16 и как правило хранящиеся во втором и третьем байтах трехбайтовых команд).

  6. Двухбайтовый адрес перехода (обозначается, как ADR, и помещается во втором и третьем байтах трехбайтовых команд).

В системе команд как правило, все команды разделены на группы. Группы объединяют однотипные команды. Например, для МП КР580ИК80А существует 10 групп:

  1. Однобайтные пересылки – группа команд, которые пересылают один байт за команду.

  2. Двухбайтовые пересылки – пересылается сразу 2 байта.

  3. Команды ввода-вывода.

  4. Команды обмена байтами.

  5. Арифметические и логические команды с одним операндом.

  6. Арифметические и логические команды с двумя операндами.

  7. Команды передачи управления.

  8. Команды сдвига содержимого аккумулятора.

  9. Команды вызова и возврата из подпрограмм.

  10. Специальные команды.

Соседние файлы в папке mIKROPROTsESSORY