본문 바로가기
학교 공부/시스템

[시스템] x86 시스템, 레지스터 종류 정리(핵심/간단)

by 그적 2021. 3. 17.

x86 시스템의 레지스터 종류

 

1. 범용 레지스터

 - EAX : 누산기, 산술 연산 저장

 - EBX : 베이스 레지스터, 특정 주소 저장

 - ECX : 카운트 레지스터, 루프 횟수 혹은 시프트 비트수 저장

 - EDX : 데이터 레지스터, 주로 입출력 동작에서 데이터 저장(큰 수에서는 EAX레지스터와 함께 사용)

  ** EAX(32비트) > AX(16비트) > AH+AL(각각 8비트)  /  EBX(32비트) > BX(16비트) > BH+BL(각각 8비트)

      ECX(32비트) > CX(16비트) > CH+CL(각각 8비트)  /  EDX(32비트) > DX(16비트) > DH+DL(각각 8비트)

 

2. 세그먼트 레지스터

 - CS : 코드 세그먼트 레지스터, 기계 명령 포함

 - DS : 데이터 세그먼트 레지스터, 데이터/상수/작업 영역 포함

 - SS : 스택 세그먼트 레지스터, 데이터나 연산 결과를 임시 저장 및 삭제

 - ES, FS, GS : 엑스트라 세그먼트 레지스터

  ** 세그먼트 레지스터는 16비트이다.

 

3. 포인트 레지스터

 - EBP : 베이스 포인터, SS 레지스터와 함께 사용되어 스택 내 변수 값을 읽음

 - ESP : 스택 포인터, SS 레지스터와 함께 사용되어 스택 내 끝(하위) 주소를 읽음

 - EIP : 명령 포인터, 명령어 오프셋 저장

 

4. 인덱스 레지스터

 - EDI : 목적지 레지스터, 목적지 주소에 대한 값 저장

 - ESI : 출발지 레지스터, 출발지 주소에 대한 값 저장

 

5. 플래그 레지스터

 - EFLAGSS : 연산 결과 및 시스템 상태와 관련된 여러 가지 플래그 값 저장

   ** S - 상태플래그 / C - 제어플래그 / X - 시스템플래그

       CF - 산술 연산 결과로 자리 올림 / ZF - 산술 연살 결과가 0 / OF - 오버플로우 발생

 

 

댓글