ステータスレジスタ【status register】フラグレジスタ

別名  :flag register/コンディションコードレジスタ/CCR/condition code register

概要

ステータスレジスタとはCPU内部に設けられたレジスタの一種で、演算や命令の実行結果に応じて各ビットの内容が自動的に書き換えられるもの。条件分岐命令などがその内容を参照して動作を決定する。各ビットは「フラグ」(flag)と呼ばれ、それぞれ決められた特定の状態を表している。
ステータスレジスタのイメージ画像

ステータスレジスタの各ビットはそれぞれ独立した役割を持ち、特定の命令を実行した結果に応じて内容が変化する。どの命令が実行されたときにどのビットがどう変化するかは命令セットの仕様で定められており、プロセッサの種類ごとに異なる。x86系やARM系など、アーキテクチャが異なればフラグの構成や名称も異なる。

代表的なフラグとして、演算結果がゼロになったことを示す「ゼロフラグ」、結果が負の値であることを示す「サインフラグ」、符号付き整数の演算で表現可能な範囲を超えたことを示す「オーバーフローフラグ」、最上位ビットへの繰り上がりや繰り下がりが生じたことを示す「キャリーフラグ」などがある。

条件分岐命令は、これらのフラグを参照して次に実行する命令を切り替える。例えば、比較命令は内部で減算を行ってその結果をステータスレジスタに反映させ、続く分岐命令がゼロフラグや符号フラグを読み取ることで、等値判定や大小比較を実現する。繰り返し処理における終了判定もこの仕組みで実装される。

キャリーフラグは多倍長演算でも活用される。レジスタの桁数を超える大きな整数を加算する際、下位桁の加算で生じた繰り上がりをキャリーフラグに保持し、次の上位桁の加算命令に反映させることで、CPUが本来扱えるビット幅を超える数値の計算を連続して行える。アセンブリ言語コンパイラはこの仕組みを利用して多倍長演算を制御する。

ステータスレジスタには演算結果以外の情報を保持するビットが含まれることもある。割り込みの許可・禁止状態や、プロセッサの特権レベル、動作モードなどを管理するビットが設けられているアーキテクチャもあり、CPU全体の制御情報を集約した領域としての性格を持つ場合もある。

(2026.6.15更新)
 

他の辞典等による「ステータスレジスタ」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。