book/ARM Assembly Language, 2e
compute GCD with Euclid's algorithms
쿨한넘
2015. 2. 16. 14:55
ARM assembly를 좋아하지 않을 수 있을리가...
// Get Greatest Common Divider (GCD)
// using Euclid's algorithm
//
// while (a != b) {
// if (a > b)
// a = a - b;
// else
// b = b - a;
// }
.global example8_5
.global gcd
example8_5:
gcd:
cmp r0, r1
subgt r0, r1 // if r0 > r1, r0 -= r1
sublt r1, r0 // if r0 < r1, r1 -= r0
bne gcd
bx lr // if r0 == r1, return
.end