Home

Divide a 16 bit number by a 8-bit number

Statement: Divide 16 bit number stored in memory locations 2200H and 2201H by the 8 bit number stored at memory location 2202H. Store the quotient in memory locations 2300H and 2301H and remainder in memory locations 2302H and 2303H.

Sample problem 1:

(2200H) = 60H

(2201H) = A0H

(2202H) = l2H

Result = A060H/12H = 8E8H Quotient and 10H remainder

(2300H) = E8H

(2301H) = 08H

(2302H= 10H

(2303H) 00H

Source program :

  • LHLD 2200H : Get the dividend
  • LDA 2202H : Get the divisor
  • MOV C, A
  • LXI D, 0000H : Quotient = 0
  • BACK: MOV A, L
  • SUB C : Subtract divisor
  • MOV L, A : Save partial result
  • JNC SKIP : if CY  1 jump
  • DCR H : Subtract borrow of previous subtraction
  • SKIP: INX D : Increment quotient
  • MOV A, H
  • CPI, 00 : Check if dividend < divisor
  • JNZ BACK : if no repeat
  • MOV A, L
  • CMP C
  • JNC BACK
  • SHLD 2302H : Store the remainder
  • XCHG
  • SHLD 2300H : Store the quotient
  • HLT : Terminate program execution

 

Flowchart for program

18-Divide a 16 bit number by a 8-bit number

Related Programs for Beginners: (Click down)

Add two 16-bit numbers

Finding Two's complement of a number

Exchange the contents of memory locations

Calculate the sum of series of numbers

Multiply two 8-bit numbers