2017-04-19 2 views
1

ich mein Schulprojekt haben und auf dem Papier schrieb esMIPS/UP16 Sprungbefehle

1 nop 
2 add $1, $2; //RF[1]=RF[1]=RF[2] 
3 beq $1, $3, #1 //if (RF[1]==RF[3]) skip inst 5 
4 nop 
5 add $4, $1  //RF[4]=RF[4]+RF[1] 
6 add $5, $1  //RF[5]=RF[5]+RF[1] 

So in Zeile 3, BEQ in der Anweisung SET ist

pc += sign_ext(immed) + 1; 

So würde nicht der PC sein bei (3 + 1 + 1) = 5 anstatt Anweisung 5 zu überspringen?

Antwort

0

Es gibt eine verdächtige nop nach dem beq, so dass Sie im Handbuch aussehen sollte, ob MIPS Zweige verzögert hat, was bedeutet, dass, bevor eine Verzweigung, die nächste Anweisung wird immer ausgeführt werden. Und diese Anweisung könnte dann auf die pc zählen.

(nur raten, da ich MIPS weiß es nicht, aber Wikipedia does.)

+1

Der Wikipedia-Artikel interessant ist. Ich mag diese Zeile in dem Artikel ... "und das neuere Design Alpha" –

Verwandte Themen