On 68000, instead of doing shifts/adds, you could also use a multiplication table. Disadvantage is that you might need a spare address register (depending on where in memory your table is) and that the table needs some memory of course. Advantage is that it is faster than lots of shifts+adds.
So f.e. if you want to multiply a number in d0 by 56 you'd do this:
lea multab(pc),a0
add.w d0,d0
move.w (a0,d0.w),d0
...
|