"move.w (%%a0),%%d0 \n\t" "move.b (%%a1),%%d2 \n\t" "add.l %%d2,%%d0 \n\t" "cmp.l #255,%%d0 \n\t" /* overflow? */ "bls.b 1f \n\t" /* no: return value */ "spl.b %%d0 \n\t" /* yes: set low byte to appropriate boundary */ "1 : \n\t" "move.b %%d0,(%%a1) \n\t"