Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цифровые устройства и микропроцессоры-конспект лекций-2015.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.24 Mб
Скачать

Лекция №7. Система команд однокристального микропроцессора

Содержание лекции: форматы команд, способы адресации, система команд, форма написания программы на языке ассемблера.

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

Для того чтобы МП выполнил серию последовательных операций нужна программа. Если она написана на языке высокого уровня, например, на PL/M или СИ, то необходимо знать только язык программирования. При написании программы на языке ассемблера необходимо знать систему команд, то есть знать, какие операции выполняются МП.

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

Каждая команда имеет определенную структуру (формат), в которой можно выделить поле кода операции (КОП) и поле операнда, определяющее числа (операнды), участвующие в операции в соответствии с КОП. Для команд используются три вида формата:

1) однобайтный, в котором несколько старших разрядов отводится под КОП, а остальные под адресацию операндов;

2) двухбайтный, в котором первый байт отводится под КОП, а второй – под восьмиразрядный операнд или номер устройства ввода-вывода;

3) трехбайтный, в котором первый байт отводится под КОП, а второй и третий – под шестнадцатиразрядный операнд или адрес ячейки памяти.

Способ определения операнда на основе структуры команды называется способом адресации. Использование нескольких способов адресации расширяет возможности при составлении программы. Выбор того или иного способа адресации определяется:

- минимальным объемом памяти для хранения программы;

- наименьшим временем выполнения программы;

- набором команд, которыми располагает данный МП.

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

Наибольшее распространение получили следующие способы адресации:

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

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

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

Условно систему команд можно разбить на пять групп:

  1. команды пересылок;

  2. команды арифметических операций;

  3. команды логических операций;

  4. команды перехода;

  5. специальные команды.

В дальнейшем, при написании команд используется символический язык и приняты следующие обозначения: R – один из РОН (B,C,D,E,H,L) или аккумулятор; RP – одна из регистровых пар (BC,DE,HL,SP): D8 – восьмиразрядный операнд; D16 – шестнадцатиразрядный операнд. В таблице 5 представлены трехразрядные коды, соответствующие именам регистров общего назначения и ячейке памяти М (memory), адрес которой определяется содержимым регистровой пары HL.

Т а б л и ц а 5

Р ОН и М

B

C

D

E

H

L

M

A

Коды

000

001

010

011

100

101

110

111

Команды пересылок осуществляют передачу данных из одного блока в другой, при этом сначала определяют приемник, а потом источник данных. Если работают с ячейкой памяти, то ее адрес определяется содержимым регистровой пары HL (старший байт в H, а младший – в L). Рассмотрим действие некоторых команд пересылок:

M OV Rd,Rs; Rd Rs – отправка содержимого регистра источника (Rs) в регистр приемник (Rd);

M VI R,D8; R D8 – отправка восьмиразрядного операнда в регистр R;

L DA D16; A M (D16); - загрузка в аккумулятор содержимого ячейки памяти, адрес которой определяется числом D16;

L XI RP,D16; RP D16 – загрузка регистровой пары RP числом D16;

O UT D8; ПОРТ(D8) A – содержимое аккумулятора передается в порт с номером D8;