C kodumu MIPS düzeneğine çevirmeyi içeren sınıflarımdan biri için bir proje üzerinde çalışıyorum. Bu kod çeviri sorun olan am:Erişim numarası kime başka bir kayıtta saklanır
r[extract(ir,15,11)] = aluout;
Temel olarak, r [] o extract
işlevinden sonucuna dayalı erişim için kayıt belirler, Görüldüğü gibi C. kayıtları temsil eden bir dizidir. MIPS'de böyle bir şey var mı? Bunu yapmayı düşünebilmemin tek yolu, ekstrakt altprogramından geri alacağım değeri alıp, tüm kayıt numaralarına karşı kontrol etmektir. Bunun C gösterimi şöyle görünecektir:
regNum = extract(ir, 15, 11);
if (regNum == 1) {
r[1] = aluout;
} else if (regNum == 2) {
r[2] = aluout;
} else if (regNum == 3) {
r[3] = aluout;
} ...
Herhangi bir fikir? Bu konuda gitmenin tek yolu bu mu?
Umm, bir diziyi dizine ekleyebilirsiniz. Yine de ham kayıtları indeksleyemezsiniz. – Jester
Evet biliyorum. C kodu, profesörümüzün MIPS'ye çevireceğimiz bir şey olduğunu söyledi. r [index] sadece MIPS – wKavey
'a çevirecekseniz $ [index] registerini temsil eder. Yani bir (MIPS?) CPU'yu taklit etmesi gereken bir MIPS montaj programı yazıyorsunuz. Öykünümlü kayıtları sadece C ile yaptığınız gibi bir dizide saklayacağım. Muhtemelen tüm kayıtlı öykülerinizi gerçek kayıt defterlerinde tutamazsınız, çünkü programınızda başka bir şey için bazı gerçek kayıtlara ihtiyacınız olacaktır. –