본문 바로가기
스터디/system

CPU의 저장공간, 레지스터 정의와 종류

by 깝태 2013. 9. 28.


레지스터란 CPU 안에서 쓰이는 저장 공간을 말합니다. 일반 메모리보다 훨씬 빠른 속도로 접근할 수 있고 사용가능하며 범용, 세그먼트, 플래그, 인스트럭션 레지스터로 나뉩니다.


범용 레지스터 : 데이터(연산자, 주소) 연산/전송에 쓰이며 메모리 포인터가 저장됩니다.


EAX - 산술 연산의 저장

EBX - 데이터 주소를 가리키는 포인터

ECX - 문자열 처리, 루프 처리

EDX - (EAX와 비슷함) 부호 확장 명령, 입출력 포인터, 일반 자료 저장

EDI - 복사 작업시 주소 임시 저장소, 주로 ESI 레지스터의 주소가 저장됨(다음 목적지 주소 값 저장)

ESI - 데이터 조작시 소스 데이터의 주소 저장(출발지 주소에 대한 값 저장)

ESP - 스택 프레임의 가장 끝 주소

EBP - 스택 프레임의 시작 주소 저장


세그먼트 레지스터 : 프로그램의 특정 세그먼트를 가리킨다, 특정 데이터를 가져오는데 도움을 줌.


CS - 실행 가능 명령어가 저장되어 있는 세그먼트의 오프셋 저장

DS - 데이터가 저장되어있는 세그먼트의 오프셋 저장

SS - 스택에 존재하는 세그먼트의 오프셋 저장


플래그 레지스터 : 프로그램의 상태를 나타내는 플래그들의 집합


CF, ZF, OF, SF, DF 


인스트럭션 포인터 : 다음 실행할 명령이 있는 메모리의 주소


EIP - 다음에 실행해야될 명령어가 존재하는 메모리 주소를 저장, 현재 명령어를 실행 완료 후에는 EIP 레지스터에 저장되어 있는 주소에 위치한 명령어를 실행