32-bit unsigned binary integer to 8-bit BCD in AVR ASM for ATtiny. How to make it more efficient?
This is based on venny's approach (venny called it triangulation), expressed on a "pseudo-C": 

uint32 x; // input variable to convert

w = { 2, 1, 4, 7, 4, 8, 3, 6, 4, 8 }; // 2^31
r = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // initial result = 0

for (i = 31; i &gt;= 0; i --)
{
   if ( 2^i  AND x )  // is x's bit i up?
      add(r, w);      // if yes, 1 ASCII ADD and 9 ASCII ADD w/CARRY MAX
   divide(w, 2)       // 10 SHIFT RIGHT MAX
}


Routines add and divide are not needed explanation, imo.