Software - Math - Integer Division

8-bit / 8-bit = 8-bit quotient, 8-bit remainder (unsigned)

  • Inputs:
    • TQ = 8-bit numerator
    • B = 8-bit denominator
  • Outputs:
    • TQ = 8-bit quotient of TQ / B
    • accumulator = remainder of TQ / B
;
   LDA #0
   LDX #8
   ASL TQ
L1 ROL
   CMP B
   BCC L2
   SBC B
L2 ROL TQ
   DEX
   BNE L1

16-bit / 8-bit = 8-bit quotient, 8-bit remainder (unsigned)

  • Inputs:
    • TH = bits 15 to 8 of the numerator
    • TLQ = bits 7 to 0 of the numerator
    • B = 8-bit denominator
  • Outputs:
    • TLQ = 8-bit quotient of T / B
    • accumulator = remainder of T / B
;
   LDA TH
   LDX #8
   ASL TLQ
L1 ROL
   BCS L2
   CMP B
   BCC L3
L2 SBC B
;
; The SEC is needed when the BCS L2 branch above was taken
;
   SEC
L3 ROL TLQ
   DEX
   BNE L1
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License