Організація пам’яті однокристального 16-розрядного МП
- Організація пам'яті 16-розрядних мікропроцесорів
- Програмна модель 16-розрядних мікропроцесорів
- Адресація портів введення-виведення 16-розрядних мікропроцесорів
- Типи адресації операндів 16-розрядних мікропроцесорів
- Цикли шини процесора 16-розрядних мікропроцесорів
- Типи переривань 16-розрядних мікропроцесорів
- Приклади роботи 16-розрядних мікропроцесорів
3. Адресація портів введення-виведення 16-розрядних МП
Простір адрес портів введення-виведення несегментований, займає 64 Кбайт і адресується 16 молодшими розрядами 20-розрядної шини адреси. Порти можуть бути як 8-, так і 16-розрядними. Будь-які два суміжних 8-розрядних порти можна вважати 16-роз-рядним портом аналогічно слову в пам'яті. При цьому для обміну з 8-розрядними портами використовується регістр AL, а з 16-розрядними — регістр АХ. Перші 256 портів (з номерами 0 — 0FFH) можна адресувати за допомогою прямої адресації.
Приклад 6. Ввести інформацію з 8-розрядного порту з адресою 56H у регістр-акумулятор AL.
Для того щоб ввести інформацію з 8-розрядного порту з адресою 56Н в акумулятор AL, треба виконати команду введення IN (введення). Першим операндом команди є позначення акумулятора AL, якщо вводиться байт інформації, або АХ, якщо вводиться слово. У цьому випадку треба використати операнд AL. Другим операндом є номер порту 56H. Тому за командою
IN AL, 56H ; AL¬ Р8(56H)
відбудеться введення інформації з 8-розрядного порту з адресою 56H до акумулятора.
Зазначимо, що допускається позначення номера порту у квадратних дужках:
IN AL, [56H] ; AL¬ Н8(56H).
Приклад 7. Вивести інформацію з регістра-акумулятора АХ у 16-розрядний порт з адресою 34H.
Для того щоб вивести інформацію з акумулятора АХ до 16-розряд-ного порту з адресою 34H, треба виконати команду виведення OUT. Першим операндом команди є номер порту 34Н, другим — позначення акумулятора AL, якщо виводиться байт інформації, або АХ, якщо виводиться слово. У цьому разі треба використати операнд АХ. Отже, за командою
OUT34H, АХ ; АХ→ Р16(34H)
відбудеться виведення інформації з регістра АХ на 16-розрядний порт з адресою 34H.
Усі 64 Кбайт портів адресуються непрямо — за допомогою регістра DX.
Приклад 8. Ввести інформацію з 8-розрядного порту з адресою, що знаходиться у регістрі DX, у регістр-аккумулятор AL.
Для того щоб ввести інформацію, треба виконати команду введення IN, першим операндом якої є позначення акумулятора AL, а другим — позначення регістра DX.
Тому за командою
IN AL, DX ;AL¬PS(DX)
відбудеться введення інформації в акумулятор AL з 8-розрядного порту з адресою, що знаходиться в регістрі DX. Вміст регістра DX має бути визначений до моменту виконання команди введення.
Допускається запис команди з непрямою адресацією у вигляді
IN AL, [DX]