; code to demonstrate the shift & add method of multiplication
;  presume the input is in two bytes named fact1 and fact2
;   and the output is going into a Word (unsigned) called PRODUCT
        mov     bl, fact1       ; grab input
        mov     al, fact2       
        mov     bh, 0           ;zero out high byte of bx
        mov     dx, 0           ;zero accum (product)
lp:     cmp     al, 0           ;check for end
        je      fini
        shr     al, 1           ;grab rightmost bit
        jnc     nextbit           ;don't add it -bit was zero
        add     dx, bx          ;add next shift into accum
nextbit: shl    bx, 1           ;shift first fact to left
        jmp     lp
fini:   mov     product, dx