
CS/어셈블리
[SPARC] 14. 곱셈과 나눗셈 그리고 서브루틴
지난 글에서는 큰 수 덧셈과 뺄셈에 대하여 정리하였다. 간단하게 요약하면 큰 수를 더하고 뺄 때는 cc 명령어를 사용해 캐리를 넘겨주고, x 명령어를 사용해 캐리를 받아 여러 레지스터를 사용해 큰 수를 연산하였다. 이번 글에서는 SPARC 프로세서의 곱셈과 서브루틴에 대해 정리하고자 한다. 곱셈 곱셈은 기본적으로 bitshift 와 덧셈의 조합이다. 예를 들어 101 x 204 를 한다고 해보자. 초등학교 때로 돌아가 어떻게 큰 수의 곱셈을 했는지 따져보면 101 x 4 x 1 101 x 0 x 10 101 x 2 x 100 이렇게 곱셈을 하고 다 더해서 곱셈을 계산했던 기억이 있을 것이다. 컴퓨터도 마찬가지로 이진수에 대해 위와같은 연산을 함으로써 곱셈을 구현한다. 이때 1, 10 100 처럼 1, 2..