ステータスレジスタ
PowerPCのステータスレジスタは、4ビットのフラグ8組から構成されており、コンディションレジスタ(CR0 - CR7)と呼ばれる。以下の一覧の左側は四則演算などの命令にupdate condition registerの指定(命令の後にピリオドを付ける。例えば符号付き16bit即値加算 addi なら addi. と指定する)でセットされる。
Bit 0. 負数 - 演算結果が負
Bit 1. 正数 - 演算結果が正 (0を含まず)
Bit 2. ゼロ - 演算結果が0
Bit 3. サマリオーバーフロー(XERレジスタのSOフィールドのコピー)
演算命令実行時にCR0 - CR7のどのコンディションレジスタに結果を反映させるか(またはどこにも反映させないか)を指定できる。 また、指定した2つのコンディションレジスタ同士でビット単位の論理演算が可能で、その結果を反映させるコンディションレジスタも自由に指定でき、複数の大小比較と論理演算を事前に行っておき、ひとつの条件分岐で済ませてしまうことができる。 条件分岐時にもどのコンディションレジスタのどの組を参照するかを指定できる。 これにより、フラグ更新を伴う複数の演算を先に実施しておき、後で条件分岐を行うということが可能となる。
一般にステータスレジスタは、そのプロセッサの命令による様々な演算などの結果などに関して「あふれが生じた」であるなどといったような対処が必要な場合がある事象に関する状態(ステータス)を示すフラグと、割込みなどといったシステムを制御する状態を示すフラグとから成る。但し、6502のように演算でなく、レジスタへのロードのみでステータスレジスタが変化するものもある。
演算結果を反映するものは、その後に条件分岐などとして参照される場合が多いが ARM のように全命令に条件フィールドがあり、条件付き実行が可能となっているCPUもある。条件分岐命令と組み合わせるか、条件付き実行命令との組み合わせにするか状況に応じて選択が可能である。割込み禁止などのシステムを制御するフラグへのアクセスはOSなど(のみ)がおこなう「センシティブ命令」であるため、仮想化要件などが重視される近年のプロセッサでは(詳細は「PopekとGoldbergの仮想化要件」を参照のこと)扱いやすさのために同一のレジスタ内に共存させたりすることは避けられる(ないし、仮に実際のハードウェア内では共存していたとしても、システム的にユーザプロセスからは隔離されている)。
組込用や8ビット時代のパソコンのプロセッサなど、あるいはリセット直後で保護モードに入る前のモード等、区別が無い場合もある。
ステータスレジスタ(英: status register)は、コンピュータのプロセッサなどにおいて、フラグのビットの集まったワードをその内容とするレジスタである。フラグレジスタやフラグバイト、コンディションコードレジスタなどとも呼ばれる。
その仕様は一般に、プロセッサの命令セットと密接に結びついており、命令セットアーキテクチャ(ISA)毎に決まっている。