int gcd(int lh, int rh){
return rh > 0 ? gcd(rh, lh % rh) : lh;
}
gcd:
cmp r1, #0 ; r1 == 0?
bxle lr ; if r1 <= 0 return lh
push r1 ; push rh
bl __aeabi_idivmod ; lh / rh
; quotient in r0
; remainder in r1
pop r0 ; r0 = rh
; now rh in r0, lh % rh in r1
bl gcd ; call gcd
bx lr ; return
레지스터 2개 인정?
아닌듯?
호재법 썼음.. c코드도 올려드림 ㄱㄷ 어디틀렸는지 말점