2016-08-04 27 views
0

ich arbeite mit Mips. ich bin verwirrt zwischen Maschinencode und Mips-Code. Wenn ich Mips benutze, kann ich die Adressen der Verzweigung in der Anzahl der Wörter sehen, die wir von der Anweisung nach der Verzweigung springen müssen. was ich nicht verstehe ist, wie es "hinter dem sceen" funktioniert? und wie ist die "Verschiebung nach links" um 2 in diesem Fall beteiligt? Ich brauche das Wort um 4 Byte (Wort) ausgerichtet zu sein, so tatsächlich die Adresse, die ich in Mips Sprache sehe, ist die Anzahl der Wort * 4 = Anzahl der Bytes, die wir brauchen, um zu skalieren?Berechnung von Zweigadressen

eine andere Frage: wenn die Verschiebung nach links um 3 war? was kann passieren? es wird mir die falsche Adresse geben?

dank

+0

Alle Anweisungen sind 4 Bytes groß und müssen an einer Adresse beginnen, das Wort-ausgerichtet ist (ein Vielfaches von 4). Daraus folgt, dass der Abstand zwischen zwei Anweisungen immer ein Vielfaches von 4 Bytes ist. Es macht also keinen Sinn, Bits, die den Verzweigungsabstand codieren, als eine Anzahl von Bytes zu verschwenden, wenn Sie wissen, dass es immer ein Vielfaches von 4 ist (d. H. Die zwei niedrigstwertigen Bits werden immer 0 sein). Stattdessen speichern Sie den Abstand geteilt durch 4 (um 2 nach rechts verschoben) im Anweisungswort, und wenn der Befehl ausgeführt wird, sorgt der Prozessor dafür, diesen Wert nach links zu verschieben. – Michael

Antwort

0

In der MIPS-Architektur, Verzweigung wird durch den Vergleich einen Wert, sobald die Anweisung gegeben wird getan, auf keiner vorherigen Operation oder Flagge zu verlassen. Dies belegt Platz im Befehlsformat, so dass nur 16 Bits als Verzweigungsadresse verwendet werden. Dies ist viel zu klein für eine Adresse, um besonders nützlich zu sein, so dass statt zu diese Adresse relativ zu seiner eigenen Adresse verzweigt. Die Berechnung dieses Verzweigungsoffsets wird vom Assembler durchgeführt, so dass es aussieht wie eine Verzweigungsoperation würde direkt auf eine Bezeichnung/Adresse verzweigen.

Quelle: http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html