상태 레지스터

상태 레지스터 또는 플래그 레지스터는 마이크로프로세서에서 다양한 산술 연산 결과의 상태를 알려주는 플래그 비트들이 모인 레지스터이다.

주로, 조건문과 같은 실행 순서의 분기에 사용된다.

 상태 레지스터 플래그 
상태 레지스터에는 다음과 같은 플래그들이 있다.
플래그 기호이름의미Z제로 플래그연산 결과가 0일 경우에 참이 된다.C캐리 플래그부호 없는 숫자의 연산 결과가 비트 범위를 넘어섰을 때 참이 된다.A보조 캐리 플래그연산 결과 하위 니블(4bits)에서 비트 범위를 넘어섰을 때 참이 된다. 이진화 십진법(BCD) 연산에 사용된다.V / O / W오버플로 플래그부호 있는 숫자의 연산 결과가 비트 범위를 넘어섰을 때 참이 된다.N / S네거티브 플래그, 사인 플래그연산 결과가 음수일 때 참이 된다.I / E인터럽트 플래그이 플래그가 참일 경우에만 인터럽트 요구를 받아들인다. 일반적으로 관리자 모드에서만 값을 변경 할 수 있다.P패리티 플래그연산 결과에서 1로된 비트의 수가 짝수일 경우 참이 된다.D디렉션 플래그문자열 조작에서 참일 경우 주소 레지스터 값이 자동으로 감소하고, 거짓일 경우 자동으로 증가한다.D / T디버그 플래그, 트랩 플래그참일 경우 한 명령이 실행할 때마다 인터럽트가 발생한다. 디버깅에 사용된다.

 상태 레지스터의 구조 
상태 레지스터의 구조는 프로세서의 설계에 따라 플래그의 기능이 약간씩 다를 수 있으며, 일부 아키텍처는 상태 레지스터가 존재하지 않는다.MIPS와 아이테니엄 아키텍처는 상태 레지스터가 존재하지 않는다.
 6502 
플래그 바이트로 불리며, 크기는 8비트이다.
76543210NVBDIZC

 Bit 4. 브레이크 플래그 : BRK 인터럽트의 발생을 알려준다.6502은 BRK와 IRQ 두 종류의 인터럽트가 있다.
 Bit 3. 십진 플래그 : 참일 경우 이진화 십진법 모드에서 동작한다.

 Z-80 

76543210SZHP/VNC

 Bit 4. Half-carry 플래그 : 이진화 십진법 변환 연산인 DAA와 같은 연산에서 사용.
 Bit 2. Parity / Overflow 플래그: (마지막) 연산이 (AND, OR, XOR와 같은) 8-bit 논리연산 혹은 shitf 연산이었다면 parity (0이면 odd), 산술계열 연산이었다면 overflow (1이면 overflow)를 나타냄.
 Bit 1. Negative 플래그 : (마지막) 연산이 빼기 계열의 연산 (SUB, SBC, DEC, CP)이면 1.
 8086 
섬네일|right|8086의 상태 레지스터
플래그 레지스터로 불리며, 크기는 16비트이다.
1514131211109876543210ODITSZAPC

 Bit 10. 디렉션 플래그

 각주 

분류:디지털 레지스터
분류:제어 흐름