Program to Divide two 8 Bit numbers in 8051 Microprocessor


Here we will see the division operation. This operation will be used to divide two 8-bit numbers using this 8051 microcontroller. The register A and B will be used in this operation. No other registers can be used for division. The result of the division has two parts. The quotient part and the remainder part. Register A will hold Quotient, and register B will hold Remainder.

We are taking two number 0EH and 03H at location 20H and 21H, After dividing the result will be stored at location 30H and 31H.

Address
Value
 

20H
0EH
21H
03H
 

30H
00H
31H
00H
 


Program

      MOV R0, #20H ; set source address 20H to R0
      MOV R1, #30H ; set destination address 30H to R1
      MOV A, @R0 ; take the first operand from source to register A
      INC R0 ; Point to the next location
      MOV B, @R0 ; take second operand from source to register B
      DIV AB ; Divide A by B
      MOV @R1, A ; Store Quotient to 30H
      INC R1 ; Increase R1 to point to the next location
      MOV @R1, B ; Store Remainder to 31H
HALT: SJMP HALT ; Stop the program

8051 provides DIV AB instruction. By using this instruction, the division can be done. In some other microprocessors like 8085, there was no DIV instruction. In that microprocessor, we need to use repetitive Subtraction operations to get the result of the division.

When the denominator is 00H, the overflow flag OV will be 1. otherwise it is 0 for division.

Output

Address
Value
 

20H
0EH
21H
03H
 

30H
04H
31H
02H
 

raja
Published on 09-Oct-2019 11:30:25
Advertisements