2017-05-23 5 views
0

MIPS hat einen Load Immediate (LI) Pseudo-Befehl, um einen 32-Bit-Direktwert in ein Register zu laden. Es hat jedoch keine Store Immediate (SI) -Anweisung, um einen 32-Bit-Sofortwert in den Speicher zu speichern. Kann mir jemand erklären warum?Warum hat nicht MIPS einen Store Immediate Befehl wie Load Immediate Befehl

+0

Mips hat keine Last sofortige Anweisung, gibt es lui und ori, die echte Anweisungen sind li ist eine Pseudobefehl, denke an es als ein Makro. –

+0

keiner von diesen (lui, noch ori) arbeitet auf Speicher, also würde ein si "genau wie" li auch bedeuten, nicht auf Speicher zu arbeiten. –

+0

Eine Anweisung, die sowohl einen unmittelbaren Wert als auch eine Speicheradresse enthält, wäre viel länger als das Befehlsformat erlaubt. –

Antwort

1

load sofort ist von sofort zu registrieren, speichern sofort wäre Register zu ... sofort ... das macht keinen Sinn. Wenn Sie in den Speicher speichern möchten, laden Sie ein Register mit Daten ein Register mit einer Adresse und machen Sie einen Speicher. es ist (angeblich) eine Lade- und Speicherarchitektur, Sie tun alles (speicherweise) über Register, nicht direkt.

+0

Meine Frage war: Angenommen, Store Immediate (SI) ist ein Befehl, der einen 32-Bit-Sofortwert speichert, warum ist er nicht in MIPS implementiert? – sandywho

+0

Warum sollte es sein? Warum haben Mips keinen Speicher zum Verschieben oder Hinzufügen, etc? Warum hat es keine HACF-Anweisung? Es passt sicherlich nicht in das Mips-Design, das sicher ist (man speichert es sofort, ohne dass ein Register als Quelle in Frage kommt), aber man muss die Designer fragen, was sie an diesem Tag denken. –

+0

Hennessy lebt noch, denke ich, schicke ihm eine E-Mail, um zu sehen, was passiert. –

Verwandte Themen