データ処理部,なかでもALUはその作業結果に応じてフラグ(flag)を設定する。
図 10.2左に示すように,
制御部がこのフラグを見て動作を変えるようになると,
いわゆるプログラムのジャンプ命令を実行できるようになる。
ALUのフラグには,
の結果が0か負か非正か,
またビット列として大であるかを示すものがある。
前者は算術演算の条件判定に使えるし,後者は論理演算の条件判定に使える。
その結果に応じて,条件ジャンプ命令を実行することが可能となり,
プログラムの適用範囲は極めて広くなる。
フラグの結果を命令1回限りで利用する場合には, 図 10.2左の構造で十分であるが, それをもっと先の命令まで利用することもある。 例えば,命令によっては情報が多く,普通より長いものもありうる。 こうしたとき,命令を全部読み込むまで,フラグの内容を維持したいことがある。 もちろん,フラグの内容をいったん汎用のレジスタに記憶し, それを読み出すことも可能であるが, こうした可能性が数多く発生する場合には,図 10.2右のように, フラグ専用のフラグレジスタ(flag register)を用意するのが得策である。