본문 바로가기

Reversing/Study

Control Register


컨트롤 레지스터란 운영체제의 운영 모드를 변경하고 현재 운영 중인 모드의 기능을 제어하는 레지스터이다. CR0, CR1, CR2, CR3, CR4 이렇게 다섯 개의 레지스터가 존재한다. 전체적인 부분을 그림으로 보면 

그리고

이렇게 나눌 수 있다. 각 레지스터들을 기능을 나누어 설명하면

CR0 - 운영모드를 제어하는 레지스터
  PE - Protection Enable (보호모드와 리얼모드 설정)
  MP - Monitor Coprocessor (wait, fwait 명령시 TS필드의 참조 여부)
  EM - Emulation (FPU가 내장되었는지 여부 설정)
  TS - Task Switched (FPU명령 사용시 예외 설정 여부)
  ET - Extension Type (1로 예약되어있음)
  NE - Numeric Error (FPU에러를 내부 예외와 외부 인터럽트 연결 설정)
  WP - Write Protect (쓰기 금지 기능 사용 여부)
  AM - Alignment Mask (어드레스 정렬 사용 검사 기능 사용 여부)
  NW - Not Write-through (캐시 정책중 write-through 사용 여부)
  CD - Cache Disable (프로세서의 캐시 사용 여부)
  PG - Paging (페이징 사용 여부)
PE비트의 역할이 가장 크고 그 외에 WP, CD, PG 비트의 역할이 중요하다. 운영체제를 공부할 때 아주 중요한 레지스터이다.

CR1 - 프로세서에 의해 예약된 레지스터

CR2 - 페이지 폴트를 유발시긴 선형 주소를 담고 있는 레지스터

CR3 - 페이지 디렉터리의 물리 주소와 페이지 캐시에 관련된 기능을 설정하는 레지스터

CR4 - 프로세서에서 지원하는 각종 확장된 각종 확장 기능을 제어하는 레지스터, 대체로 하드웨어 가상화 설정을 제어한다.
  VME - Virtual 8086 Mode Extensions (Virtual-8086 mode에서의 V
irtual Interrupt Flag (VIF)) 사용 여부)
  PVI - Protected-mode Virtual Interrupts (Protected mode에서의 Virtual Interrupt Flag (VIF)) 사용 여부)
  TSD - Time Stamp Disable (RDTSC명령어의 사용 권한 설정(커널 or 유저))
  DE - Debugging Extensions (I/O 공간에 접근했을때 디버그 레지스터에 브레이크 여부)
  PSE - Page Size Extension (페이지 크기 조절)
  PAE - Physical Address Extension (페이지 테이블 레이아웃의 확장된 36비트 물리 주소로의 전환 여부)
  MCE - Machine Check Exception (기계 검사 인터럽트의 발생 여부)
  PGE - Page Global Enabled (주소 변환시 주소 공간 공유 여부)
  PCE - Performance-Monitoring Counter enable (RDPMC명령어의 사용 권한 설정(커널 or 유저))

  OSFXSR - Operating system support for FXSAVE and FXRSTOR instructions (SSE명령어셋의 사용 여부)
  OSXMMEXCPT - Operating System Support for Unmasked SIMD Floating-Point Exceptions (SSE예외 처리 여부)
  VMXE - Virtual Machine Extensions Enable (가상화 설정 여부, Intel VT-x 참고)
  SMXE - Safer Mode Extensions Enable (안전 모드 설정 여부, Trusted Execution Technology (TXT) 참고)
  FSGSBASE - Enables the instructions RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE
  PCIDE - PCID Enable (Process-Context IDentifiers(PCIDs) 사용 여부)
  OSXSAVE - XSAVE and Processor Extended States Enable
  SMEP - Supervisor Mode Execution Protection Enable (유저 모드에서의 오류의 실행 여부)
  SMAP - Supervisor Mode Access Protection Enable (
유저 모드에서의 오류의 접근 여부)
  PKE - Protection Key Enable (Intel® 64 and IA-32 Architectures Software Developer’s Manual을 보세요)


CR4는 제가 원문 보고 발번역 해서 해석에 약간 문제가 있을 수도 있습니다...ㅠㅠ 


참고자료
https://en.wikipedia.org/wiki/Control_register
http://kin.naver.com/open100/detail.nhn?d1id=1&dirId=101&docId=213330&qb=Y3I0IHJlZ2lzdGVy&enc=utf8&section=kin&rank=1&search_sort=0&spq=0
http://s2kiess.blog.me/220269836052
http://s2kiess.blog.me/220228581865

'Reversing > Study' 카테고리의 다른 글

PEview Patch  (0) 2016.02.01
Debug Register  (0) 2015.10.19