L0053:
; 4 (ICALL)+2 (RJMP) + 1 = 7 циклов перед входом в прерывание
; вход в прерывание (7-8 циклов) ---------------------------------
in r14,SREG
mov r9,r24
mov r10,r25
mov r11,r30
mov r12,r31
cpse r19,r1
rjmp L006F
;-----------------------------------------------------------------------
;
; // отправка первого байта (26 циклов) ---------------------------
mov r20,r18
lsr r20
lsr r20
lsr r20
mov r30,r20
ldi r31,0x00
subi r30,0xE0
sbci r31,0xFE
ld r30,Z
mov r20,r30
mov r24,r30
com r24
sts D00C6,r24
mov r20,r18
andi r20,0x0F
ldi r31,0x00
subi r30,0x00
sbci r31,0xFF
ld r19,Z
rjmp L0080
; ----------------------------------------------------------------------
L006F:
; // отправка второго байта (20 циклов макс) ---------------------
mov r30,r13
ldi r31,0x00
subi r30,0x00
sbci r31,0xFE
ld r24,Z
mov r18,r24
sbrc r24,7
rjmp L0087
sbrc r19,1
rjmp L0087
rjmp L0089
; ----------------------------------------------------------------------
L007A:
mov r24,r19
com r24
sts D00C6,r24
clr r19
inc r13
; ----------------------------------------------------------------------
L0080:
; выход из прерывания (9 циклов)
mov r31,r12
mov r30,r11
mov r25,r10
mov r24,r9
out SREG,r14
reti
; ----------------------------------------------------------------------
L0087:
andi r19,0xFE
rjmp L007A
; ----------------------------------------------------------------------
L0089:
ori r19,0x01
rjmp L007A