본문 바로가기

Computer/0x02 운영체제

x86 프로세서의 구조 - 4화

x86 프로세서의 구조 - 4화



 난 시간에는, 주소공간과 IA-32 레지스터 에 대해서 알아보았습니다. X86 프로세서의 구조에 대해서 공부는

거의 필수이기 때문에 하루 포스팅을 못쓸때도 있지만 진도는 끝까지 나갈려고 합니다.




범용 레지스터



- 데이터와 주소 저장용으로 사용되는 32비트 레지스터(cf) x86의 레지스터는 범용 

레지스터도 특수 용도를 갖고 있습니다.



- EAX (Extended Accumulator)

- EBX (Base)

- ECX (Count)

- EDX (Data)


- EBP (Base Pointer)

- ESP (Stack Pointer)


- ESI (Source Index)

- EDI (Destination Index)







범용 레지스터의 부분 접근




* 80386 이상에서 32 - bit로 확장됨 

 

 

32 – bit

16 – bit

8 – bit (high)

8 – bit (low)

EAX

AX

AH

AL

EBX

BX

BH

BL

ECX

CX

CH

CL

EDX

DX

DH

DL

 

 



범용 레지스터의 특수 목적 사용




레지스터

특정한 용도

 

EAX, AX

 

곱셈, 나눗셈, translate 연산용 accumlator

입출력 연산: 입출력 데이터 보관

 

 

EBX, BX

 

루프 반복 횟수 보관(loop count)

Shift 횟수 보관 (shift count)

 

 

EDX, DX

 

입출력 연산: 포트주소 보관

곱셈, 나눗셈에서의 operand 보관

 

 

ESP, SP

(stack pointer)

 

 

스택의 top 위치 주소를 보관

 

 

EBP, BP

(base pouinter)

 

스택의 데이터를 주소를 보관 (지역변수,매개변수) frame pointer 라고도 함

 

 

ESI,SI (source index)

EDI, DI (dest, index)

 

 

메모리 블록 전송 명령어에서 사용