Как минимум, воспользоваться непрервными кусками. Скажем, символы от 'А' до 'Я' идут подряд по кодам, 0-9 тоже, всякие запятые-скобки хуже, так как тут в таблице не всё, что в Win1251DX168B писал(а):Если есть метод попроще, то можете подсказать.
Как-то так
Код: Выделить всё
cpi temp0, '0'
brlt check_punctuation
cpi temp0, '9'+1
brsh check_alpha
; тута цифры
subi temp0, '0'
ldi ZL, Low( digits*2 )
ldi ZH, High( digits*2 )
rjmp process_code
check_alpha:
cpi temp0, 'А'
brlt not_alpha
cpi temp0, 'Я'+1
brsh not_alpha
; тута буквы
subi temp0, 'А'
ldi ZL, Low( alpha*2 )
ldi ZH, High( alpha*2 )
rjmp process_code
...
process_code:
ldi temp1, 5
mul temp1, temp0
add ZL, R0
adc ZH, R1
; тута в ZH:ZL указатель на начало растра для символа
digits:
; кусок знакогенератора для цифр
alpha:
; кусок знакогенератора для букв


