; DIV16B - DIVIDE 16 BIT NUMBER IN HL BY 8 BIT NUMBER IN C ; QUOTIENT RETURNED IN HL, REMAINDER IN A ; BY BRUCE R. RATOFF 12/11/80 ; ; THIS IS A 16/8 DIVIDE WITH A DIFFERENCE IN THAT MOST TEXTBOOK ; EXAMPLES OF 16/8-BIT DIVISION WILL FAIL WHEN THE QUOTIENT EXCEEDS ; 8 BITS. HERE THE PROBLEM IS CIRCUMVENTED BY USING THE ACCUMULATOR ; AS A HIGH ORDER EXTENSION OF THE DIVIDEND. ; ; DIV16B: SUB A ; CLEAR THIRD ORDER DIVIDEND MVI B,16 ; INITIALIZE 16 BIT SHIFT COUNT DLUP: DAD H ; SHIFT DIVIDEND LEFT ADC A ; HIGH BIT SHIFTS INTO ACC SUB C ; SUBTRACT DIVISOR INX H ; SET LOW QUOTIENT BIT JNC SOK ; SKIP AHEAD IF SUBTRACT SUCCEEDED ADD C ; ELSE REVERSE SUBTRACTION DCX H ; AND CLEAR LOW QUOTIENT BIT SOK: DCR B ; COUNT DOWN 16 BITS JNZ DLUP ; LOOP IF MORE RET ; ALL DONE ;