Оказывается не так! После обнуления delay2 0x00, когда delay1 0xFF флаг Z не устанавливается. Проверял в студии кодом ниже. В железе поведение аналогично; длительность интервала 1, формируемого brcc составила 3006 мкс,а длительность интервала 0, формируемого brne 3004 мкс.neoneon писал(а):Если поставить brne, то когда в delay2 установится 0x00, т.е. сбросится полностью (а в delay1 еще будет FF), установится флаг нулевого результата Z=1, программа выйдет из цикла. Так?
Спойлер
Код: Выделить всё
.INCLUDE "tn2313def.inc"
.equ Fo=1000000
.def delay1=R16 ; младший регистр
.def delay2=R17 ; старший регистр
.CSEG
.ORG $00
START:
LDI R16,LOW(RAMEND)
OUT SPL,R16
SBI DDRD,2 ;
TEST_BRNE:
LDI delay1,$EE
LDI delay2,$02
LOOP_BRNE:
SUBI delay1,1
SBCI delay2,0
BRNE LOOP_BRNE
SBI PORTD,2
TEST_BRCC:
LDI delay1,$EE
LDI delay2,$02
LOOP_BRCC:
SUBI delay1,1
SBCI delay2,0
BRCC LOOP_BRCC
CBI PORTD,2
RJMP TEST_BRNE


