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
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 29 Zeilen
- zum Einstieg in die MIPS 32 Assemblersprache schauen wir uns die Umwandlung von einem Maschinenbefehl in einen assemblerbefehl an wir können
- daran schon erkennen dass der Maschinenbefehl für uns wesentlich schwieriger zu interpretieren ist als eben dasselbe Befehl als Assembler
- Befehl dargestellt es handelt sich hier um eine arithmetische Operation das können wir im assemblerbefehl direkt sehen im
- 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
- Register sind hier mit ihrem Dezimalwert jeweils dargestellt von 0 bis 31 jedes Register hat seinen eigenen Verwendungszweck und für bestimmte
- 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
- 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
- gute Definition ist jeder Befehl verwendet einen Opcode dieser Opcode verrätt uns welche Operation ausgeführt wird und wir können
- außerdem das Format ablesen am Opcode nämlich ob es sich um ein R i oder J Format handelt Befehle im rformat verwenden
- alle den Opcode Null das widerspricht natürlich dem dass man direkt die Anweisung oder den Befehl ablesen kann der ausgeführt wird die
- rformatbefehle behelfen sich da einem Funktionscode der sich ganz am Ende dann befindet also die sechs Bits ganz rechts im rformat interpretieren wir als
- Funktionscode und anhand dieses Funktionscodes können wir dann erst den Befehl erkennen der hier ausgeführt wird der obcode und der Funktionscode haben
- 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
- 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
- Register target Register Destination muss man achten auf die anderen beiden Formate werden wir zum späteren Zeitpunkt näher
- eingehen wir schauen uns jetzt wie gesagt erstmal das rformat an das definitiv das komplexeste Format ist ansonsten kann man hier mal kurz auf
- 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
- schon stand und wir wollen jetzt diesen Befehl in einen Assembler Befehl umwandeln wie bereits erwähnt als erstes schauen wir auf den operationscode
- erkennen daran es handelt sich um einen rformatbefehl da alle sechs Bits ganz links auf Null gestellt sind und nachdem wir den Dezimalwert des
- Funktionscodes ermittelt haben oder wir könnten auch die binäre Darstellung verwenden aber die ist natürlich nicht so schön zu
- lesen brauchen wir eine Tabelle in der alle Befehle stehen und da sehen wir hier der Funktionscode 100 entspricht dem Befehl add
- 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
- Register t00 das neunte Register ist dann das nächste nämlich das Register T1 und die
- 16 ist das Register S0 und um jetzt jetzt haben wir alle einzelnen Komponenten bestimmt des Befehls jetzt müssen wir ihn im Grunde
- nur noch zusammensetzen aber hier ist auch noch mal Fehlerpotenzial da im der Assembler Schreibweise eine andere Reihenfolge der Register verwendet wird
- wir haben hier source target Destination im Maschinenbefehl aber im Assembler Befehl haben wir erst die
- Destination dann die SCE und dann das Target und man kann die Register jeweils mit einem Komma voneinander trennen ist
- aber nicht verpflichtend hier handelt es sich um den Befehl @ doollar t0 doar T1 doollar
- S0 vergleichen wir es noch mal mit dem obigen Beispiel sollte derselbe Befehl sein @ Dollar t0 Dollar T1 Dollar S0