.define .mlu ! entry : d0 multiplicand ! d1 multiplier ! exit : d0 high order result ! d1 low order result .text .mlu: move.l (sp)+,a1 move.l (sp)+,d1 move.l (sp)+,d0 movem.l d3/d4/d6,-(sp) move.l d1,d3 move.l d1,d2 swap d2 move.l d2,d4 mulu d0,d1 mulu d0,d2 swap d0 mulu d0,d3 mulu d4,d0 clr.l d6 swap d1 add d2,d1 addx.l d6,d0 add d3,d1 addx.l d6,d0 swap d1 clr d2 clr d3 swap d2 swap d3 add.l d2,d0 add.l d3,d0 movem.l (sp)+,d3/d4/d6 jmp (a1)