Page 190 - 4503
P. 190
6.4.2 Друга засторога — фіксовані адреси
Семибітна адреса операнда є його фіксованою
складовою частину і тому не підлягає зміні під час виконання
програми. На перший погляд пряма адресація є цілком
природною і тому єдино доцільною. Насправді доволі часто
зроблено адресацію операндів — змінною величиною, в чому
ми переконаємось після розгляду двох наступних прикладів у
яких ідеться про програмне очищення усіх регістрів 0-го
банку мікроконтролера PIC 16F627/8 з адресами від h’20’ до
h’7F’.
Очевидним, з точки зору застосування прямої адресації,
видається багаторазове застосування у програмі команди
clrf:
Програма 6.1. Очищення регістрів з використанням
команд прямої адресації
clrf h’20’
clrf h’21’
clrf h’22’
clrf h’23’
clrf h’24’
clrf h’25’
.........
clrf h’7F’
Отож кожна із 96–ти команд є однією і тією ж командою
тільки з різними операндами. Чи не можна якось змінити таку
надокучливу одноманітну послідовність? Уявіть, що треба
очистити усі 224 реґістри загального призначення
мікроконтролера PIC16F627. Отже, у Flash–пам'ять слід
записати 224 команди, тоді як у ній існує всього 1024 комірки
пам’яті. Тобто це займе понад 20 % об’єму у пам’яті команд.
190