AVR Assembler: разложение числа на цифры
На AVR никогда не программировал, поэтому ограничусь алгоритмом.

1 способ, короткий.

    while (r16 >= 100) { r17++; r16 -= 100; }
    while (r16 >= 10)  { r18++; r16 -= 10; }
    r19 = r16;

2 способ, быстрый.

    if (r16 >= 200) {
      r17 = 2;
      r16 -= 200;
    } else if (r16 >= 100) {
      r17 = 1;
      r16 -= 100;
    }
    if (r16 >= 50) { r18  = 5; r16 -= 50; }
    if (r16 >= 20) { r18 += 2; r16 -= 20; }
    if (r16 >= 20) { r18 += 2; r16 -= 20; }
    if (r16 >= 10) { r18++;    r16 -= 10; }
    r19 = r16;

3 способ, если чип поддерживает инструкцию MUL.
Воспользоваться тем, что (N / 10) = Hi(N * 0xCD) >> 3;
Сорри, с этим ассемблером не работал… Но так понимаю, что если есть деление без остатка, то остаток от деления можно получить примерно так: num — (num div 10) * 10