Способи адресації даних
Система команд МК51 передбачає чотири основних типи адресації: rn - пряму - адреса операндів або переходу міститься в команді; rn - непосредственную - операндів, який завантажується, міститься в другому або в другому та третьому байтах команди; rn - непряму - адреса комірки ВПД (ВПП) перебуває (обчислюється) в якому-небудь спеціальному регістрі, посилання на який міститься в команді; rn - регістровий - джерелом або приймачем операндів є регістр активного банку, посилання на який міститься в команді. rn Крім того, в розпорядженні програміста є такі різновиди непрямої адресації: rn - відносна - в команді міститься не весь абсолютний адреса переходу, а лише зсув в байтах від поточного вмісту РС; rn - сторінкова - в регістрі-фіксатор порту P2 міститься адресу області пам'яті, виведення на границю блоку розміром 256 байтів (так званий номер сторінки), а в іншому регістрі (R0 Чи R1) знаходиться зміщення по сторінці в байтах. Виконавчий адреса комірки пам'яті формується стиковки вмісту P2 (старша частина адреси) та вмісту регістрів R0 Чи R1 (молодша частина адреси); rn - базова - вказівний регістр DPTR містить початковий (так званий базовий) абсолютний адреса області пам'яті, де знаходяться дані довільної структури. До адресою бази додається байт зміщення для визначення адреси потрібної комірки пам'яті. Джерелом зміщення є акумулятор. Зсув - це беззнаковое число в діапазоні 0 ... 255. rn Використання символічних імен rn Завдяки наявності компілятора Асемблер МК51 передбачає можливість присвоєння символічних імен як байтах РПД, адресами ВП та РПД, безпосереднім даними (константа), так і окремим бітам. rn символічні імена поділяються на такі: rn - Зарезервовані (ACC, PSW, SBUF, TCON, і т.д.). Багато з таких імен згадувалися при розгляді апаратних ресурсів МК51; rn - імена, які визначаються користувачем за допомогою директив Асемблері. rn Таким чином, на рівні Асемблері в команді може бути присутнім або прямої адреса байтів, або його символічне ім'я: rn MOV PSW, # 0 і MOV 0D0H, # 0 - це одне й те саме. rn адресація бітів rn Усі окремо адресуемие біти можна поділити на дві групи: rn 1) біти з 16-байт області ОЗП (0-127) - ріс.2.6 в посібнику; rn 2) біти блоку апаратних регістрів (128-255) - ріс.2.7 в посібнику. rn Біти з області 1 доступні шляхом зазначення в команді прямого адреси біта або символічного імені біту, присвоєного користувачем раніше. Біти з області 2 доступні або через прямий адреса біта (ріс.2.7), або з використанням резервного імені (C, OV, F0). Крім того, адресувати будь-біт з області 1 і 2 можна з використанням бітового селектору: rn АСС.4 - четвертий біт акумулятора; rn PSW.5, TCON.2 і т.д. - з використанням закритого імені регістру; rn V1.3, MY_2.0 - з використанням символічного імені, наданого користувачем. Для бітів не допускається непряма адресація!
|