Mathematics ‐ Division & Modulo - Jimmer1/Chip16 GitHub Wiki

Division is significantly more difficult to implement in code than multiplication.

slow_div:
# r0 --> r2 / r4
# r1 --> r2 % r4

# while (r4 > r2)
#   r0++
#   r4 -= r2
# r1 = r4

top:
ar r6, r4
sbc r6, r2 # r15 = 1 if a >= b
shl r15, 1
snue r4, r2
adc r15, 1
snec r15, 3
goto end
sub r4, r2
adc r0, 1
goto top
end:
ar r1, r4
ret