Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ_L_к.doc
Скачиваний:
13
Добавлен:
27.08.2019
Размер:
20.33 Mб
Скачать

6.5. Формати команд мікропроцесорів

Команди бувають прості та складні, короткі та довгі. Система команд використовує одно-, дво- та трьохбайтні команди. В останніх двох випадках байти команд в пам’яті знаходяться послідовно.

А) ОДНОБАЙТНІ КОМАНДИ. В однобайтових командах байт використовується для задавання коду операції, яка повинна виконуватись. Однобайтні команди – це команди обміну з пам”яттю, арифметичні, логічні, зсуву, операції зі стеком, керування системою переривань. В них використовуються способи неявної, регістрової або неявної регістрової адресації. Тобто, байт команди завжди показує на: код операції, вид адресації, на регістри чи регістрові пари, якщо вони приймають участь в виконанні операції. Тому можна рахувати, що вони кодуються як єдине поле, яке займає в різних командах від 2-х до 8-ми розрядів байту. Це загальне поле називають кодом операції.

При використовуванні в операції регістрів, один або два з них можуть бути показані в 1-му байті команди, при цьому під номер регістру в полі команди відводиться конкретні розряди: три молодших (В2...В0) кодують номер регістра джерела, який містить операнд, а три середніх (В5....В3) - номер регістра приймача, в який засилається результат операції. Прийнято таке кодування номерів регістрів: 000 – регістр В; 001- С; 010 – D; 011 – E; 100 – H; 101 – L; 110 –адреса комірки пам’яті із регістрів Н та L; 111 – A.

Таким чином, наприклад, код 110 показує, що виконується неявна

(косвенная) адресація до пам’яті за допомогою 16 – розрядної адреси, який розміщується в регістрах H, L. В залежності від положення цього коду в команді до відповідної комірки пам’яті буде звертання чи за операндом для його читання, чи для запису результату операції.

Ряд команд передбачають обробку чи передачу чисел подвійної довжини. В цих випадках пари регістрів В та С, чи D та Е, або Н та L об’єднуються в 16-ти розрядні регістри, які мають відповідно номери: 00, 01 та 10. Під цими намерами регістрових пар в командах відводяться розряди: (В2 та В1) - для регістра джерела, (В5 та В4) – для регістра приймача, а розряди В0 та В3 використовують як показчик коду операції.

Варіанти однобайтних команд:

7 6 5(регістр-приймач)...3 2(регістр джерело)...0 з варіантами:

1) 7(КО)6 5(DDD)3 2(SSS)0 КО – поле коду операції, DDD – 3-х бітний

2) 7(КО)6 5(DDD)3 2( КО)0 номер регістра – приймача, SSS – номер

3) 7 (КО )3 2(SSS)0 регістра – джерела, RP– 2-х розр. показник

4) 7(КО)6 5(RP)4 3(КО )0 який адресує пару регістрів, ССС–3-х розр

5) 7(КО )0 показник умови передачі керування, NNN

6) 7(КО)6 5(ССС)3 2(КО)0 -3-х розр. код, який визначає адресу векто-

7) .................(NNN)……….. ру переривання

Б) До ДВОБАЙТОВИХ команд в МП відносять команди з

безпосередньою адресацією, тобто, це команди з безпосереднім операндом, та команди вводу чи виводу. Відповідно перший байт містить код операції, яка виконується, а другий байт команди містить 8-ми розрядний безпосередній операнд або 8-ми розрядну адресу пристрою вводу чи виводу. В цих командах використовуються способи безпосередньої та прямої адресації, яка необхідна для ідентифікації намеру порту вводу – виводу.

1-й байт – КО ( код операції), 2-й байт – безпосередній операнд чи порт вводу- виводу, або 15(КО)14 13(DDD)11 10( КО)0

В) ТРЬОХБАЙТОВІ КОМАНДИ : В таких командах в 1-му байті розміщується – код операції, 2-й та 3-й байти займають 16-ти розрядні: або адреса пам’яті, або два байта безпосередніх даних. При чому 2-й байт займає молодша половина адреси, а 3-й байт – старша половина адреси. Таке місцезнаходження для машинної команди задає асемблер при трансляції вихідного коду в машинний. До команд, які використовують цей формат , відносяться команди переходів до підпрограм, команди безумовних та умовних переходів, занесення значень в регістри та в пам’ять. В них використовуються способи безпосередньої та прямої адресації.

В трьохбайтних командах другий та третій байти містять 16-розрядну адресу ( в командах з прямою адресацією до пам’яті), або 16-розрядні операнди (в командах завантаження регістрових пар чи покажчика стеку).

Є команди де в першому байті в місцях 5-го та 4-го біту вказується 2-х розрядний RP показник, який дає адресу пари регістрів, або в місцях з 5-го по 3-й біт вказується 3-х розрядний показник ССС умовної передачі керування. В командах умовного переходу 3-х розрядний код ССС задає в 3-х байтній команді умову передачі керування по адресі, яка вказана в команді. Можливі 8 варіантів умов такого переходу: якщо є перенесення, відсутність перенесення, нульовому чи ненульовому або негативному чи позитивному та парному результатах. При цьому використовується стан бітів регістра стану (PSW).