본문 바로가기

system/basic

1. Register(레지스터)

1. Register(레지스터)란?


처리 중인 데이터나 처리 결과를 임시 보관하는 CPU 내의 기억 장치.

프로그램의 메모지 역할과 같다.


2. 레지스터의 종류 및 역할


1) 범용 레지스터(General Register)

EAX(Accmulator Register) - 주로 산술 연산에 사용. 함수의 결과값 저장

EBX(Base Register) - 특정 주소 저장

ECX(Count Register) - 반복 실행되는 특정 명령 기억 ex)루프 반복 횟수, 오른쪽/왼쪽 쉬프트 비트 수

EDX(Data Register) - 일반 자료 저장


2) 포인터 레지스터(Pointer Register)    

EBP(Base Pointer) - 스택 내의 변수 값을 읽는데 사용. 스택 프레임의 시작 주소 저장. 사용하던 스택 프레임이 소멸되지 않는한 EBP의 값은 변하지 않는다. 스택 프레임 소멸 시 전의 스택 프레임을 가리킴

ESP(Stack Pointer) - 스택의 가장 끝 주소(=최상단)를 가리킴. PUSH,POP 명령어를 통해 주소가 변경된다

EIP(Instruction Pointer) - 다음 명령어의 오프셋(=Offset, 상대 위치 주소) 저장


3) 인덱스 레지스터(Index Register)

EDI(Destination Index) - 목적지 주소값 저장

ESI(Source Index) - 출발지 주소값 저장


4) 플래그 레지스터

E F L A G S - 연산 결과 및 시스템 상태를 보여주는 플래그 값 저장. 각 비트는 0 또는 1 값을 가진다.



출처) 정보 보안 개론과 실습(시스템 해킹과 보안)- 양대일

'system > basic' 카테고리의 다른 글

2. Heap(힙)  (0) 2017.03.06
0. Stack(스택)  (0) 2017.03.04