#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.