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 |