r8 has remainder (user input AND 0x0F), r9 has full loops (user input / 16)