メモリアドレスレジスタ(MAR)とプログラムカウンタ(PC)の違いは?
8 に答える
違いは、プログラムカウンターがフェッチ/実行される次の命令を指しているのに対し、メモリアドレスレジスタは実行中のプログラムが(命令ではなく)データをフェッチするメモリ位置を指していることです。
PC: プログラム カウンター (PC) は、実行またはデコードされる次の命令のアドレスを保持します。
IR: 命令レジスタ (IR) は、現在実行中またはデコード中の命令を保持します。
MAR: メモリ アドレス レジスタ (MAR) は、実行中の現在の命令に必要なデータを含むメモリ内の場所のアドレスを保持します。MAR は、必要なデータを含むメモリ位置を指すだけです。
プログラム カウンター (PC) は、CPU によって実行されている現在の命令のアドレスです。メモリ アドレス レジスタ (MAR) には、ロードまたはストア命令によってアクセスされるデータのアドレスが含まれる場合があります。
プログラム カウンタは論理アドレス (プログラムによって生成される仮想アドレス) を使用しますが、アドレス レジスタは物理アドレス (実際の実メモリ アドレス) を使用します。これが主な違いです。
プログラム カウンタ プログラム カウンタは、フェッチ、デコード、実行される次の命令のアドレスを保持します。これは、現在の命令がデコードされているときに自動的にインクリメントされます
メモリ アドレス レジスタ (MAR) は、実行中の現在の命令のアドレスを保持します。これは、必要な命令があるメモリ内の関連する場所を指します (この段階では、アドレスは単にプログラム カウンターからコピーされます)。