moveq #0,d0 move.b (a2)+,d0 lsl.w #2,d0 | A * 4 moveq #0,d1 move.b (a2)+,d1 | B add.w d1,d0 | A * 4 + B lsl.w #2,d0 | A * 16 + B * 4 move.b (a2)+,d1 | peut-être que le "+" n'est pas nécessaire, suivant comment tu lis le buffer. add.w d1,d0 | A * 16 + B * 4 + C andi.w #0x0FFF,d0 lsl.w #2,d0 lea 0(a6,d0.w),a1 | On peut n'utiliser que d0.w, parce que les deux instructions précédentes forcent le MSB sur 16 bits à 0.