2016-07-20 16 views
0

Kann jemand erklären, warum diese folgende Fließbandlinie Sinn macht?MIPS32 Assembly Beq Anweisung Erklärung

beq $0, $0, 1 

Beachten Sie, dass $ 0 auf ein Register bezieht, die immer den Wert 0 haben So sagen wir, wenn $ 0 = 0 $ dann auf den PC gehen + 4 + 1 sonst nächste Anweisung gehen.

Meine Verwirrung kommt aus dem unmittelbaren Bereich der Beq-Anweisung, die 1 ist. Heißt das, wir werden PC + 5 Adresse ??? Benötigt MIPS keine Ausrichtung beim Zugriff auf Speicher und alle Speicherplätze müssen durch 4 teilbar sein?

Beachten Sie, dass das Buch sagt, dass diese Anweisung die nächste Anweisung überspringt.

Antwort

3

Die semantische von beq $t, $s, offset ist

if ($t == $s) 
    PC = PC + 4 + 4 * offset; 
else 
    PC = PC + 4 

einfach der PC gesetzt wird immer von 4 durch die Zeit rückt die Anweisung ausgeführt wird und die unmittelbare ist, um die unteren zwei Bits angenommenen fehlt, da sie immer gleich Null sind und kann mit einer Schicht wieder eingeführt (offset * 4 = offset << 2).


beq $0, $0, 1 nur die nächste Anweisung überspringen, wie es tautologisch PC = PC + 8 gesetzt.

+0

Macht Sinn, danke. –