; DIVIDE BY SUCCESSIVE SUBTRACTION. ; ENTRY: DIVIDEND 20000 (4E20h), DIVISOR 200 (00C8h). ; ; EXIT: (B) = QUOTIENT. MUST BE < 255, ELSE OVERFLOW. ; (HL) = REMAINDER ; .ORG 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. START: LD HL, (ARG2) ; GET DIVISOR. PUSH HL ; TRANSFER TO DE. POP DE LD HL, (ARG1) ; DIVIDEND. LD B, 0 ; CLEAR QUOTIENT. LOOP: OR A ; CLEAR CARRY FOR SUBTRACTION. SBC HL, DE ; DIVIDEND - DIVISOR. JP M, DONE ; (M = SIGN FLAG.) GO IF DONE. INC B ; BUMP QUOTIENT. JP LOOP ; CONTINUE DONE: ADD HL, DE ; FIND TRUE REMAINDER. ;LOOP1: JP LOOP1 ; LOOP HERE ON DONE. HALT ; DECIMAL ARGUMENTS FOLLOW: ARG1: DEFW 20001 ; 4E21h. ARG2: DEFW 200 ; 00C8h. ; AT COMPLETION, B = 64h AND HL = 0001h. .END