So, if d0=the 16-bit address and a0=membase it's:
BTST #0,d0 ;8c?
bne.s Unaligned ;10c/4c?
move.w 0(a0,d0.w),d1 ;value 16c?
bra.s LoadDone ;10c
Unaligned:
move.b 0(a0,d0.w),d1 ;hi byte 16c.
lsl.w #8,d1 ;8*2+6=22c.
move.b 1(a0,d0.w),d1 ;lo byte 16c
LoadDone:
;Total =...