본문 바로가기

컴퓨터/운영체제(OS)

레지스터의 구성

◆ 레지스터(Register)

   - 실행 중인 명령어를 제어하고, 메모리 번지를 지정하고, 산술연산을 수행

   - 각각의 고유한 이름이 있고 이를 통하여 레지스터를 참조

◆  세그먼트 레지스터(Segment register)

   : 현재 세그먼트(current segment)인 메모리의 한 영역을 번지지정

   1) CS

     - DOS의 프로그램 코드 세그먼트의 시작 번지를 저장

      - 이 번지에 명령어 포인터(instruction pointer, IP) 레지스터 내의 옵션 값을 더하면 실행을 위한 명령어의 번지가 된다.

   2) DS

      - 프로그램의 데이터 세그먼트 레지스터의 시작 번지를 기억

   3) SS

      - 번지와 데이터를 임시로 저장할  목적으로 쓰이는 스택을 메모리에 구현할 목적

      - 스택 포인터 레지스터의 오프셋 값을 더하면 스택 내의 현재 워드를 가리키는 번지

   4) ES

      - 스트링 조작 명령어 중에서 메모리를 번지지정하기 위해 본 레지스터를 사용할 때가 있다.

      - DI 레지스터와 연관

     5) FS, GS 레지스터

◆  명령어 포인터 레지스터(Instruction pointer register = IP)

   : 실행될 다음 명령어의 오프셋 번지를 기억

   예)

          CS 레지스터 내의 세그먼트 번지 : 25A40H

          IP 레지스터 내의 오프셋 번지 :    +    412H

          다음 명령의 번지        ---->         25E52H

◆  포인터 레지스터(Pointer register)

   : SP(Stack pointer)와 BP(Base poiter)

   : SS 레지스터와 결부

   1) SP

      - 스택 내의 현재 워드를 참조할 오프셋 값을 기억

      - 80386 이후의 프로세서는 확장 스택 포인터(ESP)

      - 시스템에서 레지스터를 자동적으로 사용

   2) BP

      - 스택에 들어오고 나가는 데이터나 번지를 참조하는 데 사용

      - 80386 이후의 프로세서는 확장 스택 포인터(EBP)

◆  범용 레지스터(General purpose register)

   : AX, BX, CX, DX(AX = AH:AL로 구성)

   : EAX, EBX, ECX, EDX(80386 이후의 프로세서의 32비트 확장)

   1) AX

      - 누산기(Accumulator)

      - 산술연산, 입출력, translate 명령어 사용

   2) BX

      - '인덱스'로서 사용할 수 있는 범용 레지스터

      - Base register

   3) CX

      - Counter register

      - Loop의 반복 횟수나 좌우 방향으로 비트를 쉬프트할 숫자를 기억

   4) DX

      - Data register

      - 입출력(input/output)  명령어에 사용

      - 큰 수의 곱셈 및 나눗셈에서는 DX:AX를 쌍으로 사용

◆  인덱스 레지스터(Index register)

   : 인덱스


제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...