1. 레지스터란?

- CPU안에 들어 있는 소규모 데이터 저장장치

- 컴퓨터에서 레지스터는 마이크로프로세서의 일부분으로 아주 작은 데이터를 잠시 저장할 수 있는 공간

하나의 명열어에서 다른 명령어 또는 운영체계가 제어권을 넘긴 다른 프로그램으로 데이터를 전달하기 위한 임시 장소를 제공함.

- 레지스터는 CPU내부에 존재하며 Memory나 HDD보다 빠른 전송속도를 제공함.




2. 레지스터의 종류

- 사용 목적에 따라 대표적으로 범용 레지스터, 포인터, 레지스터, 플래그 레지스터가 있다.


1) 범용 레지스터 

- 프로그램이 실행되면서 사용되는 데이터들을 임시로 저장하는 공간이고 안의 데이터는 용도에 맞게 저장됨.

EAX (Accmulator)    - 산술연산 (함수의 결과 값 저장)

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

ECX (Count)              - 반복적 실행되는 특정 명령

EDX (Data)                - 일반 자료 저장 


2) 포인터 레지스터 

- 프로그램이 사용하는 스택 메모리를 관리하는데 필요한 레지스터.

EBP (Base Pointer)          - 스택 내 가장 밑의 주소

ESP (Stack Pointer)         - 스택 내 가장 위의 주소

EIP (Instruction Pointer) - 다음 실행할 명령의 주소 


3) 플래그 레지스터

EFLAGS - 연산 결과 및 시스템 상태와 관련된 플래그 값이 저장. 조건문이나 반복문 사용시 EFLAGS의 값에 의해 진입하는 루틴이 결정됨.




3. 레지스터의 길이

EAX (Extend) : 32 bits

AX : 16 bits

AL(low), AH (high) : 8 bits


- X86 CPU에 레지스터의 최대 크기는 32bits로 레지스터의 이름 앞에 E(Extend)를 붙여 부른다.

(EAX, EBX, ECX, EDX)


- EAX를 절반으로 자른 오른쪽의 16bits의 레지스터를 AX(BX, CX, DX)라 하고 AX를 또 절반을 나누어 AH, AL(BH:BL, CH:CL, DH:DL)로 사용한다.


감사합니다.



View Counter