PC
一度を何度も移動すると、ソリューションはうまく機能しません。つまり、宛先ポインターをソース 2 ポインターとしてロードしています (手順 5 では、PC を再度インクリメントしないでください)。あなたのソリューションに他のエラーはありませんでしたが、より高速なエラーを見つけることができました:
[更新: どうやら、プロセッサにあると想定される IR があります。そのため、DR から IR をロードできると仮定します]
オペコードを取得
ステップ1:AR <- PC
ステップ2:DR <- M[AR]; PC++; AR++
ステップ 3:IR <- DR; DR <- M[AR]
ステップ 4:Decode(IR)
SRC1を取得
ステップ 5:AR <- DR; PC++
ステップ 6:DR <- M[AR]; AR <- PC
SRC2 取得 (SRC1 ~AC
)
ステップ 7:AC <- DR; DR <- M[AR]; PC++
ステップ 8:AR <- DR
ステップ 9:DR <- M[AR]; AR <- PC
DEST を追加して取得する
ステップ 10:AC <- AC + DR; DR <- M[AR]
答えを DEST に入れます (別々のものは、次の命令に進みたい場合です)
ステップ 11:AR <- DR; DR <- AC
PC++
ステップ 12:M[AR] <- DR
AR <- PC
[UPDATE2: 15 サイクルかかるというランダムな要件があるようです。ここに 15 サイクルのソリューションがあります... 12 サイクルが理想的であり、TA/教授と話し合う必要があることに注意してください]
オペコードを取得
ステップ1:AR <- PC
ステップ2:DR <- M[AR]; PC++; AR++
ステップ 3:IR <- DR
ステップ 4:DR <- M[AR]
ステップ 5:Decode(IR)
SRC1を取得
ステップ 6:AR <- DR; PC++
ステップ 7:DR <- M[AR]
ステップ 8:AR <- PC
SRC2 取得 (SRC1 ~AC
)
ステップ 9:AC <- DR
ステップ 10:DR <- M[AR]; PC++
ステップ 11:AR <- DR
ステップ 12:DR <- M[AR]; AR <- PC
DEST を追加して取得する
ステップ 13:AC <- AC + DR; DR <- M[AR]
答えを DEST に入れます (別々のものは、次の命令に進みたい場合です)
ステップ 14:AR <- DR; DR <- AC
PC++
ステップ 15:M[AR] <- DR
AR <- PC