상태 레지스터 란 무엇입니까?
상태 레지스터 (플래그 레지스터, 프로그램 상태 단어 및 조건 코드 레지스터라고도 함)는 프로세서 내부의 플래그 비트 집합으로 정의됩니다. 레지스터는 프로세서 회로이며 메모리 위치와 매우 유사하므로 데이터를 쓰고 읽을 수 있습니다. 메모리 위치와 달리 상태 레지스터에는 마이크로 프로세서가 내부적으로 사용하기 때문에 주소가없는 경우가 많습니다. 8 비트 인 중앙 처리 장치 (CPU)에서, 상태 레지스터 비트는 다수의 프로세서 동작 결과에 의해 숫자 1과 동일하게 설정 되거나 숫자 0과 동일하게 해제 될 수있다. 프로세서는 때때로 비트 자체를 설정 또는 해제하지만 다른 경우에는 특정 프로그램 명령어가 비트를 설정 또는 해제합니다.
상태 레지스터 비트는 플래그 또는 플래그 비트라고도하며 특정 프로그래밍 목적으로 프로그래머가 사용합니다. 상태 레지스터의 각 플래그는 고유 한 용도가 있습니다. 캐리 플래그는 이전 작업에서 7 번째 비트 (또는 음의 플래그)가 오버플로되거나 캐리 플래그가 언더 플로 된 경우 설정합니다. 논리, 비교 및 산술 교대 중에 설정됩니다. 가장 최근 작업 결과가 0 인 경우 제로 플래그가 설정됩니다.
“인터럽트 디스 에이블”이라는 플래그는 인터럽트 작동을 허용하거나 금지하여 작동합니다. 인터럽트 작동은 특정 작업을 일시적으로 중단하여 다른 작업을 수행 할 수있는 명령입니다. 이 특정 플래그가 설정되면 인터럽트는 작동 할 수 없지만 분명한 경우 인터럽트가 허용됩니다. 10 진수 플래그라고하는 다른 플래그를 통해 프로세서는 고급 이진 모드를 따라 완벽한 산술 방정식을 수행 할 수 있습니다. 플래그가 설정되면이 고급 이진 모드를 사용합니다. 또 다른 레지스터 비트는 BRK (Force Interrupt) 명령이 실행될 때 설정되는 브레이크 플래그 비트입니다.
연산이 유효하지 않은 결과를 생성하면 산술 연산 중에 오버플로 플래그가 설정됩니다. 가장 최근의 연산 결과가 1로 설정되면 음의 플래그가 설정됩니다. 비트 5라는 마지막 플래그는 이름이없고 항상 1로 설정됩니다. 프로그래머는 기본적으로이 특정 비트를 사용하지 않습니다.
FLAGS 레지스터는 특정 중앙 프로세서 장치에서 사용되고 프로세서의 현재 상태를 포함하는 상태 레지스터의 한 예입니다. 너비는 16 비트였으며 각각 32 비트 레지스터 및 64 비트 레지스터 인 EFLAGS 및 RFLAGS에 의해 성공했습니다. 그러나 FLAGS 레지스터에는 패리티 플래그, 보조 플래그 및 트랩 플래그를 포함하여 원래 8 비트 레지스터와 다른 일부 플래그가있었습니다.