36 lines
766 B
Text
36 lines
766 B
Text
// how much to shift divisor by
|
|
$shiftrange={15}
|
|
/* the difference between dividend and
|
|
multiplied */
|
|
$difference={14}
|
|
// the thing we multiplied ^ by
|
|
$multiplied={13}
|
|
// what we're using to subtract right now
|
|
$attacker={12}
|
|
$one={11}
|
|
$zero={10}
|
|
$dividend={0}
|
|
$divisor={1}
|
|
$quotient={2}
|
|
$remainder={3}
|
|
|
|
// Load some stuff
|
|
li $shiftrange 16
|
|
li $multiplied 1
|
|
li $zero 0
|
|
mul $quotient $quotient $zero
|
|
mul $remainder $remainder $zero
|
|
add $one $multiplied $zero
|
|
// shift multiplied
|
|
shl $multiplied $shiftrange
|
|
|
|
// main loop
|
|
repeat16{
|
|
shr $multiplied $one
|
|
mul $attacker $multiplied $divisor
|
|
sub $difference $attacker $dividend
|
|
jp $difference 3
|
|
add $quotient $quotient $multiplied
|
|
sub $dividend $dividend $attacker
|
|
}
|
|
add $remainder $remainder $dividend :final
|