Всем привет, пытаюсь написать прогу для пятиразрядного динамического индикатора на AVR mega16. Задача - в регистровой паре лежит число, его надо вывести на индикатор. Написал дешифратор - выводит на матрицы числа лежащие в соответствующих регистрах, далее от простого к сложному... начал с двух рязрядов, далее три... и тут...все - тупик

. Не могу перейти через 199, причина ясна - переполнение регистра. Но как перейти к регистровой паре в моем алгоритме не знаю, т. к. я понял что к ней можно прибавлять только константу до 63, а мне надо будет прибавлять 100, затем 1000 (конечно можно 20 раз по 50... но это не красиво). Вот текст программы которая раскладывает число лежащие в регистре r3, по разрядно в регистры r18:r21:r23 (пока только три

)
L12:ldi r16,100
add r5,r16
cp r3,r5
brlo L11
inc r18
rjmp L12
L11:sub r5,r16
mov r6,r3
sub r6,r5
L9: ldi r16,10
add r4,r16
cp r6,r4
brlo L10
inc r21
rjmp L9
L10:sub r4,r16
mov r23,r6
sub r23,r4
Если кто-то может помочь мне, то я бы был очен признателен...

Может быть есть более простые способы для того, чтобы разложить число из регистровой пары на пять разрядов и положить соответствующий разряд в свой регистр? Подскажите хотя бы... дальше я уж сам додумаю.