Последней управляющей конструкцией, которую мы рассмотрим, будет итерация, или цикл. Циклом называется многократное повторение последовательности команд до наступления указанного условия.

Рис. 8.7. Цикл в программе
Команда DECFSZ f,fдекрементирует содержимое регистра данных общего назначения (cчетчик) и в случае равенства его содержимого нулю пропускает следующую команду. Типичным примером является подсчет числа проходов цикла.
Пример:формирование на выходе RA0 20 импульсов длительностью 2 мкс.
COUNT EQU 30H ; счетчик цикла
MOVLW D’20’ ; число повторов
MOVWF H’30’ ; в счетчике цикла
LOOP
BSF PORTA,0 ; установить RA0 (1 мкс)
NOP ; 1 мкс
BCF PORTA,0 ; сбросить RA0 (1 мкс)
NOP ; 1 мкс
DECFSZ COUNT,f ; ЕСЛИ содержимое счетчика не ноль
GOTO LOOP ; ТО повторить
….. …. ; ИНАЧЕ выйти из цикла
Команда INCFSZ f,f инкрементирует содержимое регистра данных общего назначения (счетчик). При переходе содержимого через ноль (H’FF’→ H’00’), будет пропущена следующая команда. При замене вычитающего счетчика на суммирующий необходимо изменить и содержимое счетчика цикла на 236 (256-20).