Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1.02 Mб
Скачать
    1. Система команд мп і режими адресації

МП працює в складі МПС, обмінюючись інформацією з пам'яттю й зовнішніми пристроями. В основі роботи МП лежить командний цикл – дії за вибором з пам'яті й виконанням однієї команди. Залежно від типу й формату команди, способів адресації й кількості операндів командний цикл може містити в собі різну кількість звертань до пам'яті й зовнішніх пристроїв й мати різну тривалість.

Будь-який командний цикл (КЦ) починається з добування з пам'яті першого байта команди за адресою, що зберігається в лічільнку команд. Команди можуть мати довжину 1, 2 або 3 байти, причому в першому байті міститься інформація про довжину команди. У випадку 2- або 3-байтової команди реалізуються додаткові звертання до пам'яті за сусідніми (більшими) адресами.

Після зчитування команди починається її виконання, причому в процесі виконання може знадобитися ще одне або кілька звертань до пам'яті або зовнішнього пристрою (читання операнда, запис результату).

Дії МПС з передачі в/із МП одного байта даних/команди називаються

машинним циклом.

Командний цикл являє собою послідовність машинних циклів (МЦ). МЦ обов'язково містить у собі дії з передачі байта інформації. Крім того у деяких МЦ додатково реалізуються дії з пересилання і/або перетворення інформації усередині МП. Тому тривалість МЦ може бути різною: за рахунок різної кількості машинних тактів, що вміщуються в них (T1, T2...).

Машинний такт пов’язаний із сигналами тактового генератора, тому тривалість такту постійна – період тактового генератора.

Таким чином, проглядається ієрархія процедур при роботі мікропроцесора:

Командний цикл Машинний цикл Машинний такт.

Кожному такту відповідає певний стан керуючого автомата. Будь- який МЦ обов'язково містить такти, призначені для передачі байта інтерфейсом. МЦ, у яких здійснюється передача і/або перетворення інформації в МП, містять додатково один або два такти.

Таким чином, у машинному циклі виконуються наступні дії:

  • видача адреси;

  • видача інформації про початий МЦ (PSW);

  • аналіз значення вхідних сигналів;

  • при необхідності – очікування сигналу READY = 1;

  • прийом/видача даних;

  • при необхідності – внутрішня обробка/пересилання даних. При реалізації одного МЦ процесор може:

  1. прийняти з пам'яті байт команди;

  2. прийняти з пам'яті байт даних;

  3. прийняти з ПВВ байт даних;

  4. прийняти зі стека байт даних;

  5. прийняти вектор переривання;

  6. видати на запис байт даних;

  7. видати в стек байт даних;

  8. видати на ПВВ байт даних.

Усі команди являють собою послідовність байт, що містить комбінації 1 і 0. Конструкція команд зі специфікацією різних груп біт називається форматом команди.

Частина команди, що визначає виконувану дію, називається кодом операції (КОП).

Будь-яка адреса, або дані, необхідні для виконання операції, називається операндом.

Найбільш гнучка операція вимагає до 3 операндів.

Якщо байт містить 8 біт, а для завдання адреси потрібно 16 біт, то чотирьохоперандова команда займе 8 байт пам'яті, без коду операції.

Тобто якщо основний критерій – максимальна гнучкість, то виходить повільний МП з величезною пам'яттю, отже, у більшості МП для команди використають не більше 2 операндів. Це досягається:

  • адреса команди вказується тільки в командах переходу. В інших командах основна команда вибирається з комірок пам'яті;

  • використання комірки, у якій перебуває один з операндів для запам'ятовування операндів.

Подальше скорочення кількості байт досягається розміщенням одного з них або обох у регістрах ЦП, що мають короткі адреси.

У деяких командах обходяться тільки одним операндом – однооперандні команди.

У двооперандних командах один операнд звичайно змінюється командою, а другий – ні. Тому що інформація береться тільки з одного операнда, цей операнд називається джерелом. Операнд, зміст якого змінюється, називається одержувачем.

Локалізацію й звертання до операнду забезпечують режими адресації. При введенні декількох режимів адресації необхідно відвести в команді біти, що вказують режим адресації для кожного операнда.

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

Класифікація команд за основними ознаками подана на рисунку 1.5. Найважливішим структурним елементом формату будь-якої команди є код операції (КОП), що визначає дію, яка має бути виконана. Велика кількість КОП у процесорі дуже важлива, тому що апаратна реалізація команд заощаджує пам'ять і час. Кількість бітів, що відводиться під КОП, є функцією повного набору реалізованих команд. При використанні фіксованої кількості бітів під КОП для кодування всіх команд необхідно в поле КОП виділити достатню кількість двійкових розрядів. Однак, з огляду на обмежену довжину слова МП, різне функціональне призначення команд, джерела й приймачі результатів операцій, а також те, що не всі команди містять адресну частину для звертання до пам'яті й периферійних пристроїв, у МП для кодування команд широко використовується принцип кодування зі змінною кількістю бітів під поле КОП для різних груп команд. Для взаємодії з різними модулями в МПС повинні бути засоби ідентифікації комірок зовнішньої пам'яті, комірок внутрішньої пам'яті, регістрів МП і регістрів пристроїв уведення/виводу. Тому кожній із запам'ятовувальних комірок привласнюється адреса, тобто однозначна

комбінація біт. Кількість біт визначає кількість ідентифікованих комірок.

Рисунок 1.5 – Класифікація команд

Звичайно МП має різні адресні простори пам'яті й регістрів МП, а іноді – окремі адресні простори регістрів пристроїв уведення/виводу й внутрішньої пам'яті. Крім того пам'ять зберігає як дані, так і команди. Тому для МП розроблена безліч способів звертання до пам'яті, називаних режимами адресації.

Режим адресації пам'яті – це процедура або схема перетворення адресної інформації про операнда на його виконавчу адресу.

Усі способи адресації пам'яті можна поділити на:

  1. Неявну адресацію: адреса джерела й приймача зазначені в команді неявно (вони убудовані в команді MOV A, B).

  2. Безпосередню адресацію: адреса команди є безпосередньою частиною самої команди, за кодом операції записані дані, які надає програміст при запису команди.

  3. Пряму адресацію: 1-й байт – код операції, 2-й байт – адреса, звідки беруться дані, 3-й байт – куди записується результат.

  4. Регістрову адресацію: схожа на неявну, де адреси регістрів є частиною команди.

  5. Непряму адресацію: у комірці, адреса якої визначається як частина команди, визначається адреса операнда, комірка може бути регістром, отже, регістр непрямої адресації або комірка пам'яті.

  6. Базову адресацію: адреса утвориться в результаті додавання вмісту комірки пам'яті і регістра з певним числом, використається з непрямою адресацією, застосовна до масивів або для переміщення програми в пам'яті.

  7. Індексну адресацію: декремент адреси, коли МП звертається до суміжних або рівно розподілених адрес, досягається шляхом послідовного зменшення адреси або шляхом додатка до фіксованої адреси числа, на якому відбувається інкремент або декремент; індексування в основному застосовується для послідовної адресації елементів масиву.

  8. Автоінкремент: автоматичне збільшення або зменшення адреси на 1.

  9. Адресацію базової сторінки: різновид непрямої адресації, коли зазначена адреса є адресою комірки в сторінці, а вміст комірки являє собою потрібну адресу.

  10. Відносну адресацію: адреса дорівнює сумі числа й поточного вмісту програмного лічильника, число – адреса операнда щодо команди й звичайно є частиною команди, але може втримуватися в робочому регістрі.