https://learn.dreamhack.io/43#6
범용 레지스터
| 레지스터 이름 | 의미 | 주용도 |
|---|
| rax | Accumulator Register | 함수의 반환 값 |
| rbx | Base Register | x64에서는 주된 용도 없음 |
| rcx | Counter Register | 반복문의 반복 횟수, 각종 연산의 시행 횟수 |
| rdx | Data Register | x64에서는 주된 용도 없음 |
| rsi | Source Index | 데이터를 옮길 때 원본을 가리키는 포인터 |
| rdi | Destination Index | 데이터를 옮길 때 목적지를 가리키는 포인터 |
| rsp | Stack Pointer | 사용 중인 스택의 위치를 가리키는 포인터 |
| rbp | Stack Base Pointer | 스택의 바닥을 가리키는 포인터 |
세그먼트 레지스터
| 이름 | 주용도 |
|---|
| CS (Code Segment) | 실행할 코드의 시작 주소 |
| DS (Data Segment) | 프로그램에 지정된 데이터 영역의 시작 주소 |
| SS (Stack Segment) | 스택 영역의 시작 주소 |
| ES, FS, GS | 범용적인 용도로 사용 |
명령어 포인터 레지스터
플래그 레지스터
| 플래그 | 의미 |
|---|
| CF (Carry Flag) | 부호 없는 수의 연산 결과가 비트의 범위를 넘을 경우 설정된다. |
| ZF (Zero Flag) | 연산의 결과가 0일 경우 설정된다. |
| SF (Sign Flag) | 연산의 결과가 음수일 경우 설정된다. |
| OF (Overflow Flag) | 부호 있는 수의 연산 결과가 비트 범위를 넘을 경우 설정된다. |