Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Grundlagen Informatik - 17: Einstieg Assemblersprache R-Format Maschinenbefehl umwandeln MIPS32

chriss code support5:03 5.122 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 29 Zeilen
Herunterladen
  1. zum Einstieg in die MIPS 32 Assemblersprache schauen wir uns die Umwandlung von einem Maschinenbefehl in einen assemblerbefehl an wir können
  2. daran schon erkennen dass der Maschinenbefehl für uns wesentlich schwieriger zu interpretieren ist als eben dasselbe Befehl als Assembler
  3. Befehl dargestellt es handelt sich hier um eine arithmetische Operation das können wir im assemblerbefehl direkt sehen im
  4. Maschinenbefehl eben nicht und die MIPS 32 Architektur verwendet bei den meisten Befehlen Register von diesen Registern stehen 32 Stück zur Verfügung diese 32
  5. Register sind hier mit ihrem Dezimalwert jeweils dargestellt von 0 bis 31 jedes Register hat seinen eigenen Verwendungszweck und für bestimmte
  6. Befehle kann man auch nur bestimmte Register verwenden die m 22 Architektur verwendet ausd dem ein Register Register ausführungsmodell und falls euch der der
  7. Begriff Word schon begegnet ist könnt ihr jetzt noch mal kurz auf Pause drücken und durchlesen was sich dahinter verbirgt oder meiner Meinung nach eine
  8. gute Definition ist jeder Befehl verwendet einen Opcode dieser Opcode verrätt uns welche Operation ausgeführt wird und wir können
  9. außerdem das Format ablesen am Opcode nämlich ob es sich um ein R i oder J Format handelt Befehle im rformat verwenden
  10. alle den Opcode Null das widerspricht natürlich dem dass man direkt die Anweisung oder den Befehl ablesen kann der ausgeführt wird die
  11. rformatbefehle behelfen sich da einem Funktionscode der sich ganz am Ende dann befindet also die sechs Bits ganz rechts im rformat interpretieren wir als
  12. Funktionscode und anhand dieses Funktionscodes können wir dann erst den Befehl erkennen der hier ausgeführt wird der obcode und der Funktionscode haben
  13. jeweils 6ch bit der ganze Befehl ist 32 Bit lang 12 Bits zusammen sind also Funktionscode und obcode von 32 abgezogen bleibt 20 übrig und 20 ge 4
  14. sind jeweils 5 Bit so konnte ich mir das immer ganz gut merken wie dieser Befehl aufzuteilen ist allerdings auf die Reihenfolge hier Register source
  15. Register target Register Destination muss man achten auf die anderen beiden Formate werden wir zum späteren Zeitpunkt näher
  16. eingehen wir schauen uns jetzt wie gesagt erstmal das rformat an das definitiv das komplexeste Format ist ansonsten kann man hier mal kurz auf
  17. Pause drücken das sind definitiv ein paar gute Infos die da stehen und dann kommen wir schon zu einem Beispiel und zwar dasselbe Beispiel das oben auch
  18. schon stand und wir wollen jetzt diesen Befehl in einen Assembler Befehl umwandeln wie bereits erwähnt als erstes schauen wir auf den operationscode
  19. erkennen daran es handelt sich um einen rformatbefehl da alle sechs Bits ganz links auf Null gestellt sind und nachdem wir den Dezimalwert des
  20. Funktionscodes ermittelt haben oder wir könnten auch die binäre Darstellung verwenden aber die ist natürlich nicht so schön zu
  21. lesen brauchen wir eine Tabelle in der alle Befehle stehen und da sehen wir hier der Funktionscode 100 entspricht dem Befehl add
  22. um zu erkennen um welche Register es sich hier handelt benötigen wir eben auch wieder die Tabelle wir kennen hier das Register 8 das ate Register ist das
  23. Register t00 das neunte Register ist dann das nächste nämlich das Register T1 und die
  24. 16 ist das Register S0 und um jetzt jetzt haben wir alle einzelnen Komponenten bestimmt des Befehls jetzt müssen wir ihn im Grunde
  25. nur noch zusammensetzen aber hier ist auch noch mal Fehlerpotenzial da im der Assembler Schreibweise eine andere Reihenfolge der Register verwendet wird
  26. wir haben hier source target Destination im Maschinenbefehl aber im Assembler Befehl haben wir erst die
  27. Destination dann die SCE und dann das Target und man kann die Register jeweils mit einem Komma voneinander trennen ist
  28. aber nicht verpflichtend hier handelt es sich um den Befehl @ doollar t0 doar T1 doollar
  29. S0 vergleichen wir es noch mal mit dem obigen Beispiel sollte derselbe Befehl sein @ Dollar t0 Dollar T1 Dollar S0

Zum Nachlesen