Організація пам’яті однокристального 16-розрядного МП
- Організація пам'яті 16-розрядних мікропроцесорів
- Програмна модель 16-розрядних мікропроцесорів
- Адресація портів введення-виведення 16-розрядних мікропроцесорів
- Типи адресації операндів 16-розрядних мікропроцесорів
- Цикли шини процесора 16-розрядних мікропроцесорів
- Типи переривань 16-розрядних мікропроцесорів
- Приклади роботи 16-розрядних мікропроцесорів
4. Типи адресації операндів 16-розрядних мікропроцесорів
У МП i8086 використовуються ті самі основні типи адресації — пряма, регістрова, безпосередня і непряма, що й для 8-розрядних процесорів, однак непряма адресація має такі різновиди: базова, індексна, базово-індексна.
Базова адресація. Ефективна адреса операнда ЕА обчислюється складанням вмісту базових регістрів ВХ або ВР і зміщення (8- або 16-розрядного знакового числа). У деяких випадках зміщення може не відбуватися.
Приклад 9. Переслати в регістр-акумулятор АХ вміст комірки пам'яті, що розташована у сегменті даних і має ефективну адресу (зміщення у сегменті), яка дорівнює сумі вмісту регістра ВХ і числа 2000H.
Для того щоб переслати вміст комірки пам'яті в акумулятор, треба використати команду пересилання MOVdst, sre, де операндом призначення dst {destination) є регістр АХ, а операндом джерела інформації sre (source) — комірка пам'яті. Комірка пам'яті позначається квадратними дужками, а всередині записується значення ефективної адреси, тобто ВХ + 2000Н.
Отже, за командою
MOV АХ, [ВХ + 2000H] ; АХ¬ DS:[BX + 2000H]
у регістр АХ пересилається байт з комірки пам'яті з адресою DS:ВХ+2000Н.
Зазначимо, що перед використанням цієї команди вмісти регістрів DS і ВХ визначаються заздалегідь.
Індексна адресація. За індексної адресації як адреси зміщення використовують вміст індексних регістрів SI або DI та зміщення.
Приклад 10. Переслати у регістр-акумулятор АХ вміст комірки пам'яті, розташованого у сегменті даних з ефективною адресою (зміщення у сегменті), яка дорівнює сумі вмісту регістра SI і числа 5000H.
За командою
MOV AX, [SI + 5000H] ; АХ¬ DS: [SI + 5000H]
у регістр AХ пересилається байт з комірки пам'яті з адресою DS:SI+5000H.
Перед використанням цієї команди вмісти регістрів DS і SI визначають заздалегідь.
Базово-індексна адресація. Ефективна адреса операнда ЕА дорівнює сумі вмісту базових регістрів ВХ або ВР, індексних регістрів SI або DI та зміщення.
Приклад 11. Переслати у регістр-акумулятор АХ вміст комірки пам'яті, що розташована у сегменті даних і має ефективну адресу, яка дорівнює сумі вмісту двох регістрів SI і ВХ.
За командою
MOV AX, [SI + ВХ] ; АХ «- DS: [SI + ВХ]
у регістр АХ пересилається байт з комірки пам'яті з адресою DS:SI+5000H.
Перед використанням цієї команди вмісти регістрів DS, SI і ВХ визначають заздалегідь.
Базову та індексну адресацію застосовують для звернення до елементів одновимірного, а базово-індексну — до двовимірного масиву.