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
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