2017-03-21 2 views

답변

1

모든 ARM 프로세서에서 나눗셈 또는 모듈로에 대한 직접 명령이있는 것은 아니므로 대부분의 경우 모듈러스 연산에 대한 호출은 예를 들어 함수 호출로 끝납니다. ___modsi3.

이 특별한 경우, 모듈로를 8로 할 때 값이 음수가 아닌 것으로 가정 할 수있는 경우 % 8 부분을 & 7으로 지정할 수 있습니다. 이 경우 귀하의 경우를위한 어셈블리는 다음과 같습니다.

add rA, rA, rB 
and rC, rA, #7 
+0

특정 값에 대해 실패한 경우를 가정 할 때 어떤 경우입니까? 예를 들어 71 mod 15 = 6 test = 11이다. 내가 뭔가를 놓치지 않는 한. – InfinitelyManic

+0

모듈로 8은 7이며, 8은 2의 거듭 제곱이기 때문에 모듈로 15는 완전히 다르기 때문에베이스 2와 연산을 실제로 나누어야합니다. –

+0

@old_timer, 예, 나는 그럴 수도 있다고 생각했습니다. 나는 뺄셈 기반의 mod 함수를 사용했다; 그러나 루프로 인해 mod 함수를 사용할 수있는 div보다 훨씬 느립니다. – InfinitelyManic

관련 문제