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
   200   201   202   203   204   205   206   207   208   209   210