; multa x multb ; ProdH : ProdL clrf ProdH movlw b'10000000' ; When ProdL is shifted a total of eight times movwf ProdL ; this bit will flag the carry. movf multa, w label_1 rrf multb, f ; Rotate multipler right. btfsc STATUS, C ; If there is a carry then add multa to ProdH. addwf ProdH rrf ProdH, f ; Rotate both registers rrf ProdL, f ; If the bit we placed in this register at the btfss STATUS, C ; beginning moves into the carry then the program goto label_1 ; has cycled eight times. return ; Multiplication finished.