unsigned long long gcd(unsigned long long a, unsigned long long b) {
if (b == 0)
return (a);
if (a >= b)
return gcd(a, a - b);
return gcd(b, b - a);
}
מה זה כבר יכול להיות
gcd::
bne a1, x0, l1
jalr x0, 0(ra)
l1:
addi sp, sp, -8
sd ra, 0(sp)
sub t0, a0, a1
blt t0, l2
sub a1, a0, a1
jal ra, gcd
beq x0, x0, done
l2:
sub t0, a1, a0
add a0, a1, x0
add a1, t0, x0
jal ra, gcd
done:
ld ra, 0(sp)
addi sp, sp, 8
jalr x0, 0(ra)