2м.ц.
DELAY
MOVLW
.X ; 1м.ц.
MOVWF COUNT ; 1м.ц.
m1
DECFSZ COUNT,f ; 1м.ц.
GOTO m1 ; 2м.ц.
RETURN ; 1м.ц.
Поскольку выход из цикла происходит за счет пропуска команды GOTO последний раз она исполняется за 1 мкс. Таким образом, общая задержка, вносимая командами DECFSZ и GOTO составит (1+2)Х–1 мкс
Общее число циклов равно
2 (CALL)+1 (MOVLW)+1(MOVWF)+[1(DECFSZ)+2(GOTO)–1]X+1(RETURN)
Т=2+1+1+(1+2)Х–1+1 мкс
Т=4+3Х мкс
Величина задержки в подпрограмме DELAY ограничена тем, что любой регистр данных микроконтроллера (счетчик) является 8-ми битным, т.е. максимальное значение Х=255. Таким образом максимальная величина задержки подпрограммы составляет 4+3*255=770.