CPU에는 ALU, 제어장치, 레지스터가 있다.
ALU는 다양한 연산을 수행한다.
ALU는 레지스터를 통해 피연산자를 받아들이고, 제어 장치를 통해 수행할 연산의 제어 신호를 받아들인다.
그 연산의 결과값은 일시적으로 레지스터에 저장된다.
연산 결과의 추가 상태 정보를 의미하는 플래그는 플래그 레지스터에 저장된다.
플래그
: 연산 결과의 추가 상태 정보
플래그는 플래그 레지스터에 저장된다.
플래그 종류 | 의미 | 사용 예시 |
---|---|---|
부호 플래그 | 연산 결과의 부호를 나타냄 | 1이면 음수 / 0이면 양수 |
제로 플래그 | 연산 결과가 0인지 여부를 나타냄 | 1이면 0 / 0이면 0이 아님 |
캐리 플래그 | 연산 결과 올림수나 빌림수가 발생했는지 여부를 나타냄 | 1이면 올림수나 빌림수가 발생 / 0이면 발생하지 않음 |
오버플로우 플래그 | 오버플로우가 발생했는지 나타냄 | 1이면 오버플로우 발생 / 0이면 발생하지 않음 |
인터럽트 플래그 | 인터럽트가 가능한지 나타냄 | 1이면 인터럽트가 가능 |
슈퍼바이저 플래그 | 커널 모드 / 사용자 모드에서 실행 중인지 나타냄 | 1이면 커널모드 / 0이면 사용자 모드 |
ALU가 받아들이는 값 | ALU가 내보내는 값 |
---|---|
레지스터의 피연산자 | 연산 결과 → 레지스터 |
제어장치의 제어 신호 | 플래그 → 플래그 레지스터 |
제어 장치는 명령어를 해석하고 제어 신호를 내보낸다.