Page 213 - 4503
P. 213

бути збережений або у робочому регістрі, або у відповідному
           регістрі пам’яті даних.
                У наступному програмному фрагменті показано приклад
           здатності  команди  incf  впливати  на  ознаку  нуля  —  Z.  У
           прикладі йдеться про трибайтне число (рисунок 7.4), яке при
           інкрементуванні    стає  переповненим  у    найнижчому    байті,
           тобто  відбувся  такий  перехід  b’11111111’+1  =  b’00000000’.
           Внаслідок  цієї  дії  мав  би  відбутися  перенос  у  старший  байт
           числа  1,  але  команда  інкрементування  так  не  чинить,  зате
           забезпечить установку  1 у біті Z  регістра STATUS.







                 Рисунок 7.4 — Трибатне число збережене у реґіcтрах за
                             адресами h’31’, h’32’, h’33’

           ; ввести еквівалентні позначення
                LOW              equ    h’31’
                MIDDLE           equ    h’32’
                HIGHE            equ    h’33’
           ; інкремернтувати дане трибайтне число
           incf  LOW   ; інкрементувати молодший байт
           btfss       STATUS,        Z      ;     перевірити,          чи
           ;установлений біт Z
           goto NEXT ; якщо ні, то вийти
           incf  MIDDLE  ;  якщо  так,  то  інкрементувати
           ;серед. байт
           btfss STATUS, Z; перевірити, чи установлений
           ;біт Z goto NEXT ; якщо ні, то вийти
           incf  HIGHE  ;  якщо  так,  то  інкрементувати
           ;старший байт
           NEXT ; наступна секція коду програми


                                         213
   208   209   210   211   212   213   214   215   216   217   218