Вложенный цикл — Может ли кто-нибудь объяснить этот цикл?

#assembly #pic18

Вопрос:

Может кто-нибудь объяснить, как работает этот тип цикла, я взял его из кода, который имеет общую задержку в 1 секунду, я не понял функции ЦИКЛА 2 и 3.

 DELAY:
        MOVLW 0X44
        MOVWF C1
LOOP3:
        MOVLW 0X33
        MOVWF C2
LOOP2:  
        MOVLW 0X44
        MOVWF C3
LOOP1: 
        DECFSZ C3
        GOTO LOOP1
        DECFSZ C2
        GOTO LOOP2
        DECFSZ C1
        GOTO LOOP3
        RETURN
END
 

Комментарии:

1. Что вам нужно объяснить? Вы, кажется, знаете, что это вложенные циклы. Каждый цикл повторяет все внутренние петли. В общей сложности вы получаете 0x44*0x33*0x44 итерации. Предположительно, это займет 1 секунду на вашем устройстве.

2. Это может помочь понять, что для DECFSZ : Если результат равен 0, следующая инструкция, которая уже получена, отбрасывается, и вместо этого выполняется NOP.