나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2026-11-05 20:43:06

System V ABI/AMD64


#!if top = 문서명1 != null ? 문서명1 : calleeTitle != null ? (i = calleeTitle.lastIndexOf("/")) != -1 ? calleeTitle.substr(0, i) : '상위 문서' : '상위 문서'
[[파일:상위 문서 아이콘.svg|align=left&width=21.6px]] {{{#!html  }}} 상위 문서: [[]]

1. 개요2. 역사3. 특징4. 사양
4.1. 자료형4.2. 호출 규약4.3. 스택4.4. 레지스터4.5. Linux 시스템 콜
5. 관련 문서

1. 개요

System V ABI - AMD64 Architecture Processor Supplement
ELF x86-64 psABI

AMD64 환경을 위한 System V ABI 사양. Linux와 여러 유닉스 계열 환경에서 사용한다. x86-64 psABI 공식 저장소

2. 역사

2000년 AMD가 x86-64 아키텍처 사양을 공개하면서 ABI 작업이 시작되었다.

현재는 i386 ABI 문서와 함께 GitLab의 x86-psABIs 프로젝트에서 관리된다.

3. 특징

4. 사양

어셈블리 표기법은 사양 문서와 동일하게 AT&T 표기법을 사용하여 작성한다.

4.1. 자료형

4.2. 호출 규약

4.3. 스택

스택은 높은 주소에서 낮은 주소 방향으로 확장되며, 함수 호출 시 CALL 명령을 실행하기 직전의 %rsp는 16바이트 경계에 정렬되어야 한다.

4.4. 레지스터

범용 레지스터 구분 비고
%rax caller-saved 반환값. AL은 가변 인자 호출에 사용
%rcx caller-saved 인자 4
%rdx caller-saved 인자 3/반환값
%rbx callee-saved 보존 레지스터
%rsp [1] 스택 포인터
%rbp callee-saved (프레임 포인터)
%rsi caller-saved 인자 2
%rdi caller-saved 인자 1
%r8 caller-saved 인자 5
%r9 caller-saved 인자 6
%r10 caller-saved 임시 레지스터/시스템콜 인자 4
%r11 caller-saved 임시 레지스터
%r12-%r14 callee-saved 보존 레지스터
%r15 callee-saved 보존 레지스터/GOT(선택)

[1] 반환 시 호출자가 기대하는 상태로 복구

4.5. Linux 시스템 콜

5. 관련 문서


분류