rax Register 핵심 개념 정리
rax는 64비트 x86 아키텍처(x86-64)에서 사용하는 주요 범용 레지스터 중 하나입니다. 본래 ax로 16비트 프로세서에서 등장했으며, 이후 32비트로 확장된 것이 eax, 최종적으로 64비트 환경에서 다시 확장된 것이 바로 rax입니다. 즉, rax는 과거에서부터 현대 CPU까지 연산을 담당해온 레지스터의 진화된 형태라고 할 수 있습니다.
rax Register의 역할과 특징
- 범용 레지스터 (General-Purpose Register)
- 다양한 연산(덧셈, 뺄셈, 곱셈 등)과 데이터의 임시 저장 용도로 사용된다.
- 함수 반환값 저장
- C/C++과 같은 고급 언어에서 함수 호출 시, 함수가 반환하는 값은 주로 rax에 저장된다.
- 곱셈과 나눗셈 연산의 특수 레지스터
- 곱셈(mul, imul)과 나눗셈(div, idiv) 명령어를 수행할 때 반드시 사용되는 특수 레지스터
- 곱셈의 결과 값 중 하위 64비트가 rax에, 상위 64비트는 rdx에 저장된다.
- 나눗셈 연산 시 피제수(dividend)를 저장하는 용도로 rax와 rdx가 사용된다.
rax Register의 세부 구성
레지스터 이름 | 비트 크기 | 설명 |
rax | 64 비트 | 전체 레지스터 |
eax | 32 비트 | rax의 하위 32비트 |
ax | 16 비트 | eax의 하위 16비트 |
ah, al | 각 8 비트 | ax의 상위/하위 8비트 |
즉, 하나의 rax 레지스터는 상황에 따라 다양한 크기로 나누어 접근할 수 있습니다.
간단한 예시 (Assembly 코드)
mov rax, 5 ; rax에 5 저장
add rax, 3 ; rax = rax + 3 → rax는 이제 8
정리하며
rax 레지스터는 CPU 연산 과정에서 핵심적인 역할을 담당하는 대표 레지스터인데요. 범용 연산 및 함수의 결과값 전달과 같은 중요한 작업에서 필수적으로 사용되는 만큼, 이를 이해하는 것은 시스템 프로그래밍과 어셈블리 코드를 이해하는 데 필수적이라 할 수 있습니다.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] Segmentation Fault 핵심 정리 (1) | 2025.05.18 |
---|---|
[CS기초] Interrupt란 무엇인가? (0) | 2025.05.18 |
[CS기초] Atomic Operation (원자적 연산) 개념 정리 (0) | 2025.05.18 |
[CS기초] 캐시(Cache) 핵심 개념 정리 (0) | 2025.05.18 |
[CS기초] User Stack 핵심 개념 정리 (0) | 2025.05.18 |