clr tmp2
ldi tmp, 0x19 // загружаем константу
add_25: //
add r22, 0xA0 // умножаем на 25 DEC / 19 HEX
adc r23 , 0x0F //
adc r24, tmp2 //
dec tmp //
brne add_25 //
// registers
// 28 27 26
// 1 55 CC = 87.500
// 1 86 A0 = 100.000
// 1 A5 E0 = 108.000
ldi r26, 0xA0 // отнимаем 100 000
ldi r27, 0x86
ldi r28, 0x01
rcall dec_char
mov dig_1,loop // сохраняем результат первой цыфры
ldi r26, 0x10 // отнимаем 10 000
ldi r27, 0x27
clr r28
rcall dec_char
mov dig_2,loop // сохраняем результат второй цыфры
ldi r26, 0xE8 // отнимаем 1 000
ldi r27, 0x03
rcall dec_char
mov dig_3,loop // сохраняем результат третьей цыфры
ldi r26, 0x64 // отнимаем 100
clr r27
rcall dec_char
mov dig_4,loop // сохраняем результат четвертой цыфры
ldi r26, 0x0A // отнимаем 10
clr r27
rcall dec_char
mov dig_5,loop // сохраняем результат пятой цыфры
// Перекодировка HEX -> DEC
dec_char: //
ldi loop,-1 // загружаем значение и отнимаем от него 1
char_no:
sub r22, r26 //
sbc r23, r27 //
sbc r24, r28 //
dec loop //
brsh char_no // перейти если больше без знака
ret //
пробую так , не выходит , может я не так заганяю значение в loop ?
Сколько раз нужно отнять значение 100 000 ? потому что если отнимать его 256 раз проц затухает примерно на 1 секунду

.