ステータスレジスタとは何ですか?
ステータスレジスタ(フラグレジスタ、プログラムステータスワード、条件コードレジスタとも呼ばれます)は、プロセッサ内のフラグビットの集合体として定義されます。レジスタはプロセッサ回路であり、メモリの位置によく似ています。つまり、データは書かれて読み取ることができます。メモリの位置とは異なり、マイクロプロセッサが内部で使用するため、ステータスレジスタにはアドレスがあまりありません。 8ビットの中央処理ユニット(CPU)では、ステータスレジスタビットは set に等しい、またはクリアされた、、各種プロセッサ操作結果によって0に等しいに等しくなります。プロセッサはビット自体を設定またはクリアすることがありますが、特定のプログラム命令はビットを設定またはクリアします。ステータスレジスタの各フラグには、独自の目的があります。以前の操作が7ビット&mを作成した場合、キャリーフラグセットダッシュ;またはネガティブフラグ - オーバーフロー、またはキャリーフラグアンダーフローを作成しました。ロジック、比較、算術のシフト中に設定します。最新の操作結果が0の場合、ゼロフラグセット。
「割り込み無効」と呼ばれるフラグは、割り込みの操作を許可または禁止することにより動作します。これは、特定の操作を一時的に停止して他の操作を実行できるようにする命令です。この特定のフラグが設定された場合、割り込みは操作できませんが、明確な場合は割り込みが許可されます。 10進数フラグと呼ばれる別のフラグにより、プロセッサはより高度なバイナリモードに従って完璧な算術方程式を実行できます。フラグが設定されると、この高度なバイナリモードを使用します。別の登録ビットは、BREAKフラグビットです。これは、フォース割り込み(BRK)コマンドが実行されたときに設定します。
操作がINVAを生成する場合の算術の操作中にオーバーフローフラグが設定されます蓋の結果。ネガティブフラグは、最新の操作の結果が1に設定されている場合に設定します。ビット5と呼ばれる最後のフラグは、常に1に設定されています。プログラマーは本質的にこの特定のビットを使用しません。
フラグレジスタは、特定の中央プロセッサユニットで使用され、プロセッサの現在の状態が含まれているステータスレジスタの一例です。 幅16ビットで、それぞれ32ビットレジスタと64ビットレジスタであるEFLAGSとRFLAGSが引き継がれました。ただし、フラグレジスタには、パリティフラグ、補助フラグ、トラップフラグなど、元の8ビットレジスタとは異なるフラグがありました。