ホームページ >よくある問題 >次に実行される命令のアドレスを保存するために、コンピューターのどの部分が使用されますか?

次に実行される命令のアドレスを保存するために、コンピューターのどの部分が使用されますか?

藏色散人
藏色散人オリジナル
2020-10-29 11:52:0223016ブラウズ

実行される次の命令のアドレスを格納するために使用されるコンピュータ内のコンポーネントはプログラム カウンタです。プログラム カウンタは、次の命令が配置されているユニットのアドレスを格納するために使用される場所です。プログラム カウンタはコンピュータ プロセッサ内のレジスタです。現在実行中の命令のアドレスが含まれています。命令がフェッチされるたびに、プログラム カウンタの格納アドレスが 1 ずつ増加します。

次に実行される命令のアドレスを保存するために、コンピューターのどの部分が使用されますか?

#次に実行される命令のアドレスを保存するために使用されるコンピューターの部分は、プログラム カウンターです。

プログラム カウンタは、次の命令が配置されているユニットのアドレスが格納される場所です。

命令を実行する際には、まずPCに格納されている命令アドレスに従ってメモリから命令レジスタに命令をフェッチする必要があり、この処理を「命令フェッチ」と呼びます。同時に、PC 内のアドレスが自動的に 1 増加するか、次の命令のアドレスが分岐ポインタによって与えられます。その後、命令が解析されて実行されます。最初の命令の実行が完了したら、PC に従って 2 番目の命令のアドレスをフェッチするなど、各命令を実行します。

プログラム カウンタは、現在実行されている命令のアドレス (場所) を含むコンピュータ プロセッサ内のレジスタです。各命令がフェッチされると、プログラム カウンタのメモリ アドレスが 1 ずつ増加します。各命令がフェッチされた後、プログラム カウンタはシーケンス内の次の命令を指します。コンピュータが再起動またはリセットされると、通常、プログラム カウンタはゼロに戻ります。

フォン・ノイマンのコンピュータ・アーキテクチャの主な内容の 1 つは、「プログラムの事前保存とコンピュータの自動実行」です。プロセッサが実行するプログラム(命令列)は、バイナリコード列の形でコンピュータのメモリにあらかじめ格納されており、プロセッサはそれを逐次プロセッサ内に取り込み、デコードして実行することで、プログラムの実行を完了します。プログラム全体。プログラムが確実に実行を継続できるようにするために、CPU は次のフェッチ命令のアドレスを決定する何らかの手段を備えている必要があります。プログラム カウンタ (PC) がこの役割を果たすため、「命令カウンタ」と呼ばれることがよくあります。

プログラムの実行を開始する前に、プログラム命令シーケンスの開始アドレス、つまりプログラムの最初の命令が配置されているメモリユニットアドレスが PC に送信され、CPU は最初の命令を読み取ります。 PCの指示に従ってメモリから(指)。命令を実行すると、CPU は PC の内容を自動的に変更します。つまり、命令が実行されるたびに、PC は命令に含まれるバイト数 (命令の数) だけ増加します。バイト)、PC がフェッチされる次の命令アドレスを常に指すようにします。ほとんどの命令は順番に実行されるため、PC を変更するプロセスは通常、単に「命令バイト数」を PC に追加するだけです。

プログラムを転送する場合、転送命令の実行の最終結果は PC の値を変更することであり、この PC の値が転送のターゲットアドレスになります。プロセッサは常に PC ポインタに従って命令をフェッチ、デコード、実行することでプログラム転送を実現します。

ARM プロセッサは R15 を PC として使用し、常に命令フェッチ ユニットを指します。ARM プロセッサには PC レジスタが 1 つだけあり、すべてのモードで共有されます。 R15 は 32 ビット幅です (次のマークは R15[31:0] で、R15 の「31 番目のビット」から「0 番目のビット」を示します)。ARM プロセッサは 4GB のアドレス空間 (2^32 = 4G) を直接アドレス指定できます。 )。

以上が次に実行される命令のアドレスを保存するために、コンピューターのどの部分が使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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