Forum: PC-Programmierung Mit welchem Befehl kann man vier Byte auf einmal in ein Register laden?


von Stahl. (Gast)


Lesenswert?

Guten Abend!
Mit welchem Befehl kann man vier Byte auf einmal in ein Register laden? 
(Befehl im mnemonischen Format) Wir reden hier von mips.

von Tom (Gast)


Lesenswert?

Das steht hier: http://bfy.tw/LYzT

von Stahl. (Gast)


Lesenswert?

Tom schrieb:
> Das steht hier: http://bfy.tw/LYzT

Bin ich schon dabei, aber irgendwie hilft es nicht

von void (Gast)


Lesenswert?

lw

von Dr. Sommer (Gast)


Lesenswert?

Da die MIPS-Instruktionen nur 32bit groß sind, passt da kaum ein Opcode, 
32bit-Wert und Registernummer hinein. Daher gibt es hier genau wie bei 
ARM keinen solchen Befehl.

Eine Kombination aus ORI und LUI macht was du willst. Der Pseudobefehl 
LI macht das einfacher indem er diese beiden Befehle erzeugt.

von Stahl. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Da die MIPS-Instruktionen nur 32bit groß sind, passt da kaum ein
> Opcode,
> 32bit-Wert und Registernummer hinein. Daher gibt es hier genau wie bei
> ARM keinen solchen Befehl.
>
> Eine Kombination aus ORI und LUI macht was du willst. Der Pseudobefehl
> LI macht das einfacher indem er diese beiden Befehle erzeugt.

Achso, zb für 2 Byte so hier:

lui $t0,255
ori $t0,$t0,255
?

von (prx) A. K. (prx)


Lesenswert?

Die Frage ist wie so oft etwas rudimentär formuliert. Denn so ziemlich 
jeder Befehl, der in ein Register schreibt, erfüllt die genannten 
Bedingungen. Steht ja nicht da, woher die Bytes kommen. Ein 
Additionsbefehl oder ein Unterprogrammaufruf tuts also auch.

Somit gerät das ein wenig zum Rorschachtest.

: Bearbeitet durch User
von Stahl. (Gast)


Lesenswert?

A. K. schrieb:
> Die Frage ist wie so oft etwas rudimentär formuliert. Denn so
> ziemlich
> jeder Befehl, der in ein Register schreibt, erfüllt die genannten
> Bedingungen. Steht ja nicht da, woher die Bytes kommen. Ein
> Additionsbefehl oder ein Unterprogrammaufruf tuts also auch.
>
> Somit gerät das ein wenig zum Rorschachtest.

Ich schreibe mal beide Hausaufgaben auf:
1)
Mit welchem Befehl kann man vier Byte auf einmal in ein Register laden? 
(Befehl im mnemonischen Format)

2) Welche Befehle bräuchten man um den Befehl aus 1) nachzubilden (ohne 
den Befehl aus 1) zu verwenden)?
Nennen in Stichpunkten die nötigen Befehle, es ist kein Assemblercode
notwendig!

von (prx) A. K. (prx)


Lesenswert?

Nun wirds besser, weil 2 deutlich macht, wie 1 gemeint ist.

von Stahl. (Gast)


Lesenswert?

A. K. schrieb:
> Nun wirds besser, weil 2 deutlich macht, wie 1 gemeint ist.

Nur was soll der Befehl nur sein ist die Frage.

von ASMR (Gast)


Lesenswert?

Stahl. schrieb:
> lui $t0,255
> ori $t0,$t0,255
> ?

Ne, denke nicht

von LordRomeo (Gast)


Lesenswert?

Hey.
Ich kenne mich zwar nicht in mips aus, allerdings hatte ich es vor 
Jahren mal benutzt.

Warum nutzt du nicht la als Befehl?
Es geht doch hier um Befehle im mnemonischen Format?

Oder verstehe ich was falsch?

Wie gesagt Berichtet mich, aber der liebe A. K ist bestimmt gleich zur 
Stelle:)

von (prx) A. K. (prx)


Lesenswert?

LordRomeo schrieb:
> der liebe A. K ist bestimmt gleich zur Stelle:)

Ich kenne mich auch nicht wirklich mit MIPS aus.

: Bearbeitet durch User
von Daniel F. (df311)


Lesenswert?

[quote]
Load word
lw rt, address

0x23 rs rt offset
  6   5  5   16

Load 32-bit word at address into register rt.
[/quote]

lädt 4 byte in ein register

von Glücklich ohne Grund (Gast)


Lesenswert?

Stahl. schrieb:
> Mit welchem Befehl kann man vier Byte auf einmal in ein Register laden?

POP
RET


Oder soll es auch Sinn machen?

von StGruber (Gast)


Lesenswert?

Daniel F. schrieb:
> [quote]
> Load word
> lw rt, address
>
> 0x23 rs rt offset
>   6   5  5   16
>
> Load 32-bit word at address into register rt.
> [/quote]
>
> lädt 4 byte in ein register

Macht keinen Sinn, wenn man die Aufgabe erfüllen soll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.