загрузка...
загрузка...
На головну

спеціальні команди

Команди введення виведення

Особливістю мікропроцесора КР.580ІK80A, що відрізняє його від інших, навіть більш розвинених систем, є можливість організації введення - виведення двох типів: по спеціальним командам; за аналогією зі зверненням до пам'яті.

Введення - висновок за допомогою спеціальних команд називається акумуляторним (ізольованим) введенням - висновком. В цьому випадку адресний простір портів введення і виведення відділяється від адресного простору пам'яті, яка може займати весь адресний простір (64 К).

При організації в мікропроцесорної системі вводу - виводу, за аналогією зі зверненням до пам'яті, кожне зовнішній пристрій має своїм індивідуальним адресою, подібним до того, який мають всі осередки пам'яті. Отже, для портів введення і виведення відокремлена певна частина адрес. Тому всі команди звернення до пам'яті, наприклад LDA, STAта інші, з адресою, відповідному портам введення і виведення, стають командами введення - виведення, і спеціальних команд не потрібно.

значення слів INиOUT вже були дані вище. Відповідні команди мають двухбайтное формат: другий байт вказує безпосередньо номер пристрою (адреса), з якого інформація повинна бути введена в акумулятор або, навпаки, в яке має бути надіслане вміст акумулятора (табл.2.5). При восьмирозрядних адресах можливе звернення до 256 портів введення і 256 портів виведення.

Таблиця 2.5. Команди введення - виведення і спеціальні

 функція  Переклад  мнемоніка
 введення  In  IN
 висновок  Out  OUT
 дозволене переривання  Enable Interrupt  EI
 заборонено переривання  Disable Interrupt  DI
 повторний пуск  Restart  RST
 зупинка  Halt  HLT
 Ні операції (холодна команда)  No Operation  NOP

Спеціальні команди використовуються головним чином для організації переривань. Коли виконується початкова установка мікропроцесора КР.580ІK80A, він буде ігнорувати всі запити на переривання, що надходять від зовнішніх пристроїв. Перекласти його в стан, при якому з'єднання може перерватися програми, можна тільки за командою дозволу переривань ЕI - Enable Interruption (можливо переривання) за програмою. Про перехід в такий стан центральний процесор інформує систему за допомогою установки сигналу рівня логічної 1 на виводі INTE (Interruption Enable) БІС центрального процесора.

Під час отримання запиту на переривання і є дозвіл на його виконання, то стан, при якому можливе переривання, автоматично припиняється (сигнал INTE дорівнює 0), але може бути відновлено повторної подачею сигналу ЕI. Цю команду можна подати відразу після отримання запиту на переривання, тоді сигнал INTE буде дорівнює 1 і, отже, программаобработкі переривання, в свою чергу, може бути перервана новим запитом (організацією вкладення переривань). Якщо команда ЕI подається тільки в кінці програми обробки переривань, тоді вкладення неможливі.

Сигнал INTE може бути переведений в логічний 0, т. Е. Можливість переривання знята або автоматично: при запитах від апаратних засобів системи, або шляхом подачі команди заборони переривання DI (Disable Interruption). Отже, в логічний 0 сигнал INTE може переведений і сигналом INI і командою DI, але в логічну 1 його можна перевести тільки по команді EI.

Коли мікропроцесор приймає сигнал запиту переривання від зовнішнього пристрою, він перш за все завершує виконання поточної команди, і в стек записується адреса наступної команди програми адреса повернення з переривання. Після того, як всі поточні дані, які треба зберегти, будуть за допомогою відповідних програм записані в стек, влаштуванню, який послав запит, направляється сигнал дозволу переривання INTA - Interrupt Acknowledge (добро на переривання). Сигнал INTA активний при нульовому рівні і додається до чотирьох сигналів управління (ЗПЗУ, ЧТЗУ, ЗПВВ, ЧТВВ), що передаються по шині управління.

Зовнішній пристрій, послали запит, через певний час має забезпечити введення в мікропроцесор адреси або вектора, що визначає точку входу в програму обробки даного переривання. Для цього пристрій видає на шину команду RST - Restart (повторний старт).

Вісім біт команди рестарту мають такий вигляд:

RST 11 AAA 111,

де ААА - вектор переривання. Три біта з зовнішнього пристрою вказують на те що, яка з восьми програм переривання повинна виконуватися в даному випадку.

Фізично вектор переривання ААА визначає один з восьми ареалів (областей) пам'яті. Кожен ареал пам'яті має протяжність в вісім байт і тому задається адресами (табл. 2.6.) Якщо програма обробки переривання перевищує 8 команд, то в ареал пам'яті повинна бути включена команда JMP, т. Е. Безумовний перехід до іншої частини програми, яка може бути розташована в будь-якому місці основної пам'яті.

Таблиця 2.6. Початкові адреси ареалів пам'яті

 Номер ареалу пам'яті  Початкова адреса (HEX)  Номер ареалу Пам'яті  Початкова адреса (HEX)

У момент початку виконання процесором команди переривання, в програмний лічильник заноситься початкова адреса відповідного ареалу, і процес триває аж до кінця програми обробки переривань. Цей кінець повинен містити команду POP для відновлення вмісту всіх регістрів і команду RET (повернення), по якій в програмний лічильник заноситься значення, що були в ньому в момент початку переривання, і тоді відбувається повернення до вихідної точки. Команда RST в основному призначена для обробки переривань, але може використовуватися також при налагодженні програми. У цьому випадку вектор переривання вказує програміст.

Команда HLT- Halt (останов) викликає припинення виконання програми, вміст програмного лічильника при цьому не збільшується, але всі поточні значення в регістрах зберігаються незмінними. Команду HLT легко подати, але зі стану зупинки важко вийти. У мікропроцесорі К580ИК80 припинити стан зупинки можна тільки перериванням з подальшою подачею команди рестарту на шину даних. Таким чином, кожній команді HLT повинна передувати команда EI і всякий раз, коли відбувається переривання, необхідно новою командою EI відновити можливість переривання.

Команди переходів (альтернативні команди) «-- попередня | наступна --» кодування програми
загрузка...
© om.net.ua