Page 187 - 4503
P. 187
bcf STATUS, 5 ; погашення RP0 (5-й
;біт) в 0
movf h’120’,w ;копіювання вмісту ;регістра
h’120’ в w
bcf STATUS, 6 ; погашення RP1 (6-й
;біт) в 0
Якщо програміст забуде змінити біти RP1:0 перед
виконанням команди movf h’120’, w то в робочий
регістр перекопіюється вміст регістра h’020’. Бо ж адреса
h’020’ по суті є h’20’ тобто вимагає тільки вісім двійкових
розрядів, а значить потребує нульового банку. Однак в такому
випадку асемблер подасть таке попередження:
Message [302] Register in operand not
in bank 0.
Ensure that bank bits are correct.
Задля уникнення надто частих переключень поміж
банками всі РЗП (Реґістри Загального Призначення)
мікроконтролера PIC16F84 відображені на обидва банки (
рисунок 6.5). Таке віддзеркалення регістрів загального
призначення серед родини PIC16хххх трапляэться зрідка.
Частіше це може стосуватися не всіх РЗП, а тільки певної їх
групи. Наприклад у моделі PIC16F627/8 в усіх чотирьох
банках відображеними, тобто абсолютно ідентичними є
тільки 16 спільних РЗП ( рисунок 6.6 ). Тобто наприклад, за
адресами h’070’, h’0F0’, h’170’, h’1F0’ розміщений той самий
реґістр. Саме до цих регістрів варто переміщати змінні, які за
задумом програміста використовуватимуться у різних банках.
Решта 224 регістрів загального призначення є унікальними,
187