Page 205 - 4503
P. 205
movlw b’11001110’; розміщення константи
;b’11001110’у регістрі w
swapf w,0 ; у результаті в w
;розміститься величина b’00110001’
Як бачимо, вміст регістру w був перекопійований сам у
себе, про що свідчить операнд w,0, але при цьому півбайти
помінялись місцями.
7.2 Команди арифметичних операцій
Процесори PIC16xxxx попри операції додавання мають
у своєму арсеналі команди, що здійснюють операції
встановлення та погашення окремих бітів у певному регістрі
даних, декрементування і інкрементування їх вмісту та інші.
Команди арифметичних операцій представлені у таблиці 7.2.
Таблиця 7.2 показує, що операції додавання–віднімання
впливають на ознаку С і DC, в той час як команди інших
операцій представлених у таблиці такого впливу не надають.
Задля детальнішого пояснення розглянемо наступну задачу.
7.2.1 Додавання багатобайтних величин
Задача 7.1. Дано два числа, одне з яких двобайтне
1000001111100001, а інше однобайтне — 11000111.
Потрібно визначити суму цих двох доданків.
Проілюструємо умову задачі на рисунку 7.1.
Як відомо у родині мікроконтролерів PIC16xxxxx
регістри у пам’яті даних є восьмибітними. Тому для початку
розіб’ємо 16–розрядний доданок А на дві частини —
молодший байт і старший байт. Це зробимо для того, щоб для
205