32 ビットの CALL 命令が CPU によってフェッチされるマイクロ操作で、フェッチ サイクルがどのように書き込まれるかを理解しようとしています。
MAR is 16 bits wide
MDR is 8 bits wide
PC is 16 bits wide
IR is 16 bits wide
Temp registers are 16 bits wide
私の質問は、命令が 32 ビットで、上位 16 ビットがオペコードを表し、下位 16 ビットがジャンプ先の宛先アドレスを表しているという事実から生じています。
フェッチ サイクルは次のようになります。
MAR <- PC
MDR <- M(MAR)
IR <- MDR opcode
MAR <- MDR address
PC <- PC + 1
MDR は 8 ビット幅しかないため、このフェッチ サイクルを調整して、オペコード全体とそれぞれ 16 ビット幅のアドレスを考慮するにはどうすればよいでしょうか?