메모리 영역을 공부하기 전에 '세그먼트'(segment) 와 '영역'이라는 표현에 대해서 같은것인지에 대해서 긴가민가 했었는데 공부를 하면서 아래 그림과 같이 이렇게 나누어진 영역을 세그먼트(segment)라고 한 다는 것에 대해서 알 수 있었다.
CPU가 읽어 해설할 수 있는 기계어들이 위치하게 되는 영역을 말한다. 우리가 작성한 메인 프로그램의 기계어 코드가 바로 이 영역에 위치하게 된다.
보통 첫번째로 실행 가능한 명령어는 이 세그먼트(segment)의 맨 처음에 위치하며, 운영체제(OS)는 프로그램 실행을 시작하기 위해 그 위치를 알고 있다. 이름이 의미하듯이, 코드 세그먼트(CS) 레지스터는 코드 세그먼트의 주소를 의미한다.
그리고 우리가 코딩한 것을 실행을 시키면 CPU가 알아서 코드영역에 저장된 명령어들을 하나씩 가져가서 처리하는 방식으로 프로그램을 실행한다. 또한 이렇게 프로그램을 실행시킬 때 각각의 함수들이 변경되면 안되기 때문에 읽기전용(Read-Only)이다.
[출처] : 해커스쿨, Rude's Factory, 고양이손님
'Basic Theory > Term' 카테고리의 다른 글
메모리(Memory)영역 - 스택영역(stack segment) (0) | 2012.07.16 |
---|---|
가상 메모리(virtual memory) (0) | 2012.07.16 |
Console(콘솔) (0) | 2012.06.22 |
Module(모듈) (0) | 2012.06.22 |
Exception 의 종류 (Trap, Fault, Abort) (0) | 2012.06.21 |