x86-64( =x64 ) 아키텍처에서 사용하는 64비트 범용 레지스터는 다음과 같다.
레지스터 | 역할 및 설명 |
RAX | 누산기 레지스터, 산술 및 I/O 연산 |
RBX | 베이스 레지스터, 특정 주소 저장 |
RCX | 카운터 레지스터, 루프 및 반복 연산 |
RDX | 데이터 레지스터, 곱셈 / 나눗셈 연산 |
RSI | 소스 인덱스, 문자열 연산시 사용 |
RDI | 목적지 인덱스, 문자열 연산 시 사용 |
RBP | 베이스 포인터, 스택 프레임 관리 |
RSP | 스택 포인터, 현재 스택 주소 |
R8 | 추가적인 범용 레지스터 |
R9 | 추가적인 범용 레지스터 |
R10 | 추가적인 범용 레지스터 |
R11 | 추가적인 범용 레지스터( 일반적으로 임시 저장 용도 ) |
R12 | 추가적인 범용 레지스터 |
R13 | 추가적인 범용 레지스터 |
R14 | 추가적인 범용 레지스터 |
R15 | 추가적인 범용 레지스터 |
📌 64비트 레지스터 설명
🌙 연산용 레지스터
🔹 RAX (누산기, Accumulator Register)
- 산술 연산, I/O 연산, 곱셈/나눗셈 연산에서 기본적으로 사용된다.
- 함수 호출 시 리턴 값을 저장하는 역할 ( return 값 저장 )
🔹 RBX (누산기, Accumulator Register)
- 데이터를 저장하는 역할을 하며, 메모리 접근 시 특정 값 저장 가능
🔹 RCX (카운터 레지스터, Counter Register)
- 루프 및 반복문에서 주로 사용된다.
- LOOP 명령어에서 반복 횟수를 저장하는 역할을 한다.
🔹 RDX (데이터 레지스터, Data Register)
- 곱셈/나눗셈 연산에서 사용된다.
🌙 메모리 및 스택 관련 레지스터
🔹 RBP (베이스 포인터, Base Pointer)
- 함수 호출 시 스택 프레임 관리
- 지역 변수 및 함수 매개변수 접근
🔹 RSP (스택 포인터, Stack Pointer)
- 현재 스택의 최상위 주소를 가리킨다.
- 푸시( PUSH ), 팝( POP ) 연산에 사용한다.
🌙 문자열 연산
🔹 RSI (소스 인덱스, Source Index)
- 메모리 복사 시 소스 주소를 저장한다.
🔹 RDI (목적지 인덱스, Destination Index)
- 메모리 복사 시 목적지 주소를 저장한다.
예제
MOV RSI, source ; 소스 주소
MOV RDI, dest ; 목적지 주소
MOV RCX, length ; 복사할 길이
REP MOVSB ; 바이트 단위로 복사
'언어 > 어셈블리어' 카테고리의 다른 글
[어셈블리어] x86 아키텍처 ( 16비트 ) 범용 레지스터 (0) | 2025.02.16 |
---|---|
[어셈블리어] MOV 명령어 (0) | 2025.02.16 |
[어셈블리어] x86 아키텍처 ( 32비트 ) 범용 레지스터 (0) | 2025.02.15 |
[어셈블리어] 어셈블리어( Assembly language ) (0) | 2025.02.14 |