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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stahl. (Gast)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Das steht hier: http://bfy.tw/LYzT

von Stahl. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tom schrieb:
> Das steht hier: http://bfy.tw/LYzT

Bin ich schon dabei, aber irgendwie hilft es nicht

von void (Gast)


Bewertung
0 lesenswert
nicht lesenswert
lw

von Dr. Sommer (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Nun wirds besser, weil 2 deutlich macht, wie 1 gemeint ist.

von Stahl. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Stahl. schrieb:
> lui $t0,255
> ori $t0,$t0,255
> ?

Ne, denke nicht

von LordRomeo (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.