특수목적 레지스터

  • user warning: Table './snwslug/cache_page' is marked as crashed and should be repaired query: LOCK TABLES cache_page WRITE in /home/snwslug/public_html/includes/database.mysql.inc on line 174.
  • user warning: in /home/snwslug/public_html/includes/database.mysql.inc on line 174.

특수 목적 레지스터들 특수 목적 레지스터들은 EIP, ESP, EFLAGS 와 세그먼트 레지스터들인 CS, DS, ES, SS, FS, GS 를 포함합니다.

EIP (Instruction Pointer) 코드 세그먼트로 정의된 메모리 부분에서 다음 명령어를 지정합니다. 이 레지스터는 실제모드의 8086-80486 에선 IP 이며, 보호모드의 80386, 80486 에선 EIP 로 사용됩니다. 8086, 8088, 80286 은 EIP를 포함하지 않으며, 오로지 보호모드에서 작동되는 80286, 80386, 80486 에서만 포함합니다. 프로그램에서 다음 명령어를 지정하는 명령어 포인터는 마이크로프로세서가 코드 세그먼트 안에 있는 프로그램에서 다음 순서의 명령어를 찾는데 사용됩니다.

ESP (Stack Pointer) 스택이라 불리는 메모리의 영역을 지정합니다. 스택메모리는 이 포인터를 통해 데이터를 저장합니다. 이 기술은 스택 데이터를 지정하는 명령어에 대한 부분에서 나중에 설명하겠습니다.

EFLAGS (Flags) 마이크로프로세서의 작동을 제어하는 조건으로서 마이크로프로세서의 상태를 기술합니다. 그림 2-2는 모든 버전의 8086-80486 마이크로 프로세서 플레그 레지스터를 보여줍니다. 플래그들은 8086/8088 부터 80486 까지 상위 버전으로 호환됩니다. 8086-80286 은 FLAG 레지스터 (16 bit) 를 갖으며, 80386-80486 은 EFLAG 레지스터를 갖습니다. (32 bit 확장된 플래그 레지스터)
플래그의 비트들은 여러 수식연산, 논리연산 명령어 실행 후에 변경됩니다. 몇몇 플래그들은 마이크로 프로세서에서 제어 요소로 사용되기도 합니다. 다음장에서 소개될 명령어들을 설명하면서 플래그 bit 에 대한 더 자세한 내용을 제공합니다.

Submitted by jachin on Wed, 2006-11-22 07:11.