R&D/OS

[IA-32] Segment Registers

sunshout 2013. 12. 9. 20:32

메모리에 대한 이해를 보다 보면, Segment Register에 대한 이야기가 자주 나온다. 오늘은 Segment Register에 대해서 이해해 보도록 하자.


Segment Register는 Segment Selector라는 16bit 레지스터를 가지고 있다. Segment Selector는 메모리의 특정 영역(Segment)를 가르키는 포인터라고 이해하면 된다. 따라서 Segment 기반의 메모리 접근방식을 사용할 때는 Segment와 Offset을 이용해서 메모리 공간에 접근할 수 있다.


Segment register의 종류

- CS (Code Segment)

- DS (Data Segment)

- SS (Stack Segment)

- ES (Extra Segment) : Extra data에 대한 point

- FS (F Segment) : more extra data에 대한 point

- GS (G Segment) : still more extra data에 대한 point


Flat 메모리 모델을 사용한다면, 모든 Segment 레지스터는 address space의 0번지를 가르키고 있다. (따라서 Memory가 overlapping 됨)