|
;------------------------------
; Табличный вариант.
; 10 тактов
ldi zl,low(tab1)
ldi zh,high(tab1)
andi r16,31 ; Необходимо ограничить длину таблицы
add zl,r16 ; Вычисляем 16-битный указатель адреса перехода
clr r16 ;
adc zh,r16 ;
ijmp
tab1:
rjmp do_err ; 0
rjmp do_err ; 1
rjmp do_err ; 2
rjmp do_err ; 3
rjmp do_err ; 4
rjmp do_err ; 5
rjmp do_err ; 6
rjmp do_err ; 7
rjmp do_err ; 8
rjmp do_err ; 9
rjmp do_err ; 10
rjmp do_err ; 11
rjmp do_12 ; 12
rjmp do_12 ; 13
rjmp do_15 ; 14
rjmp do_15 ; 15
rjmp do_15 ; 16
rjmp do_20 ; 17
rjmp do_20 ; 18
rjmp do_20 ; 19
rjmp do_20 ; 20
rjmp do_err ; 21
rjmp do_err ; 22
rjmp do_err ; 23
rjmp do_err ; 24
rjmp do_err ; 25
rjmp do_err ; 26
rjmp do_err ; 27
rjmp do_err ; 28
rjmp do_err ; 29
rjmp do_err ; 30
rjmp do_err ; 31