HOME                ELECTRONICS                8051

To Multiply 16 Bit By 8 Bit Data

                                .ORG 0H
                                MOV R0,#30H
                                MOV @R0,#0FFH                      ;HIGHER BYTE OF NUMBER 1
                                INC R0
                                MOV @R0,#0FFH                      ;LOWER BYTE OF NUMBER 1
                                MOV R1,#40H
                                MOV @R1,#0FFH                      ;SECOND NUMBER
                                MOV A,@R0                               ;GET THE LOWER BYTE OF NUM1 TO A 
                                MOV 0F0H,@R1                         ;GET THE NUM2 INTO B
                                MUL AB
                                MOV R5,A                                   ;LOWER BYTE OF PRODUCT IN R5
                                MOV R4,0F0H                             ;HIGHER BYTE OF PRODUCT IN R4
                                DEC R0
                                MOV A,@R0                               ;HIGHER BYTE OF NUM1INTO A 
                                MOV 0F0H,@R1                         ;GET BACK NUM2 INTO B
                                MUL AB
                                MOV R3,0F0H                             ;HIGHER BYTE OF PRODUCT INTO R3
                                ADD A,R4                                    ;LOWER BYTE OF PRODUCT ADDED TO
                                JNC SKP                                      ;HIGHER BYTE OF PREVIOUS PRODUCT
                                INC R3
SKP:                         MOV R4,A
HERE:                      SJMP HERE