ホームページ  >  記事  >  コードセグメント内のオフセットアドレスを格納するレジスタは何ですか?

コードセグメント内のオフセットアドレスを格納するレジスタは何ですか?

青灯夜游
青灯夜游オリジナル
2021-01-22 13:54:019980ブラウズ

コード セグメント内のオフセット アドレスを格納するレジスタは、命令ポインタ レジスタです。命令ポインタ レジスタ IP は、プログラム内の命令の実行シーケンスを制御するために使用されます。通常の動作中、IP には、BIU によってフェッチされる次の命令 (バイト) のオフセット アドレスが含まれています。通常の状況では、命令コードは次のようになります。メモリから一度アクセスされると、命令が順次実行されるように、IP は自動的に 1 ずつ増加します。

コードセグメント内のオフセットアドレスを格納するレジスタは何ですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

レジスタの機能はバイナリ コードを保存することであり、保存機能を備えたフリップフロップの組み合わせで構成されます。フリップフロップは1ビットのバイナリコードを記憶できるため、nビットのバイナリコードを記憶するレジスタはn個のフリップフロップで構成される必要があります。

コード セグメント内のオフセット アドレスを格納するレジスタは、命令ポインタ レジスタです。

命令ポインタ レジスタ IP (X86 CPU) は、ARM CPU のプログラム カウンタ PC に相当し、プログラム内の命令の実行順序を制御するために使用されます。通常の動作中、IP には BIU によってフェッチされる次の命令 (バイト) のオフセット アドレスが含まれています。通常の状況では、命令コードがメモリからアクセスされるたびに、IP はシーケンシャルであることを保証するために自動的に 1 ずつ増分されます。指示の実行。 IP は実際には命令マシンコードがメモリ単位を格納するアドレスポインタであり、転送命令(JMP など)により IP の内容を強制的に書き換えてプログラムの実行順序を変更することができます。 ######知らせ!コンパイルしたプログラムは IP に直接アクセスできません。つまり、命令を使用して IP の値を取得したり、IP の値を設定したりすることはできません (たとえば、mov 命令を使用して IP に値を割り当てることはできません)。

拡張知識: 概念の区別

命令レジスタ

(IR、命令レジスタ)、現在の命令を一時的に保存するために使用されます。実行するプロセス命令。命令レジスタのクロック信号は clk であり、clk の立ち上がりエッジでトリガされます。命令レジスタは、データ バスから送信された命令を 16 ビット レジスタに格納しますが、命令がデータ バス上で送信される場合もあれば、データが送信される場合もあることから、データ バス上のすべてのデータを登録する必要はありません。データを登録する必要があるかどうかは、CPU ステート コントローラーの Ir_ena 信号によって制御されます。リセットすると、命令レジスタはクリアされます。

命令ポインタレジスタ IP

(命令ポインタ) は、フェッチされる命令のアドレス オフセットを格納するために使用されます。 CS レジスタと組み合わせた場合にのみ、命令を指す実際の物理アドレスを形成できます。 さらに関連記事を読みたい場合は、

PHP 中国語 Web サイト

にアクセスしてください。 !

以上がコードセグメント内のオフセットアドレスを格納するレジスタは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。