ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • common, segment,system Register and EFLAGS
    Operating System 2014. 1. 20. 22:20

    범용 레지스터 


    EIP

    Instruction pointer 레지스터는 다음 실행할 명령어가 있는 현재 code segment의 offset값을 가진다.

    소프트웨어적으로 접근 할 수 없으며, Control-transfer instructin(JMP,CALL, RET)이나 interrput와 exception에 의해서 제어된다.

     

     

    세그먼트 레지스터



    메모리 보호용으로 사용

    CS, DS, SS, ES, FS, GS

    CS,SD,SS,ES는 32bit protected mode에선 GDT 인덱싱하는데 사용되고,

    FS는 TEB구조체 가르치고,

    GS는 ?

     

    EFLAGS(Extended FLAGS)

     

    저렇게 status, control ,system flag로 category가 나뉜다. 

    OF

    SF

    ZF

    AF

    PF

    CF


    just cpu가 수행한 연산의 결과를 flag bit로 나타낸다. 

    for example, 

     1111 + 0001 = 0000

    연산을 하면, overflow발생했고, carry도 생겼으므로,  set CF, OF 


    시스템 레지스터


    IA-32에서 중요한 시스템 레지스터를 갖는다. MS - Windows는 가장 높은 특권 레벨(level 0)에서 수행되는 프로그램에서만 이 레지스터들의 접근을 허용한다.

     

    - (Interrupt Descriptor Table Register : IDTR)

    인터럽트 서술자 테이블(IDT)의 주소를 포함. 이 테이블은 인터럽트를 처리하는 방법을 제공한다.

     

    - (Global Descriptor Table Register : GDTR)

    전역 서술자 테이블의 주소(GDT)를 포함. 이 테이블은 태스크 상태 세그먼트와 프로그램 지역 서술자 테이블에 대한 포인터를 포함한다.

     

    - (Local Descriptor Table Register : LDTR)

    현재 실행 중인 프로그램의 코드, 데이터, 스택에 대한 포인터를 포함한다.

     


    - 테스크 레지스터 (Task Register:TR)

    현재 실행 중인 테스크에 대한 태스크 상태 세그먼트(TSS)의 주소를 포함한다.

     

    - 디버그 레지스터 (Debug Register)

    디버깅할 때에 프로그램이 brake point를 설정하게 한다.

     

    - 제어 레지스터 (Control Register) CR0, CR2, CR3, CR4

    태스크 전환, 페이징, 캐시 메모리 활성화와 같은 시스템 수준의 동작을 제어하는 상태 플래그와 데이터 필드를 포함한다.

     

    - 모델 특정 레지스터 (Model-Specific Register)

    성능 모니터링과 기계 구조의 확인과 같은 운영체제의 스템 작업에 사용. 용도는 IA - 32 프로세서의 종류에 따라 변한다.

     

     

     



    'Operating System' 카테고리의 다른 글

    SPT, NPT  (0) 2015.03.06
    virtualization techniques  (0) 2015.03.06
    concurrency  (0) 2015.02.15
    GDT, segment descriptor  (0) 2014.01.14
    Task 상태정의  (0) 2013.06.14
Designed by Tistory.