MIPS Programmierung

Antworten
RolfiDieWaldfee
Beiträge: 2
Registriert: 04.01.2016 16:41

MIPS Programmierung

Beitrag von RolfiDieWaldfee » 14.02.2016 15:31

Weiß jemand, wo man eine gute Erklärung zur MIPS Programmierung findet? Mit dem was bei Professor Santini im Skript steht komme ich nicht wirklich weiter :|
Ich wäre euch sehr dankbar :D

wm2015
Beiträge: 3
Registriert: 20.11.2015 09:47
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Angestrebter Abschluss: Dipl-Ing.

Re: MIPS Programmierung

Beitrag von wm2015 » 16.02.2016 15:33

Ist zwar jetzt etwas spät, aber mir hat es am meisten geholfen die Programme, die Herr Schöne online gestellt hat nachzuvollziehen und dann einfach mal selber an einem Beispiel rumzuprobieren. Man hat ja auch mit dem eduMIPS Simulator eine ganz gut Möglichkeit das zu testen was man geschrieben hat. Und dadurch das alles was passiert auch gezeigt wird lässt sich das auch gut nachvollziehen.
Die Beispiele und den Simulator fundest du hier: http://wwwpub.zih.tu-dresden.de/~ss17/s ... /mips.html

RolfiDieWaldfee
Beiträge: 2
Registriert: 04.01.2016 16:41

Re: MIPS Programmierung

Beitrag von RolfiDieWaldfee » 19.02.2016 10:34

Das klingt gut danke :)

Marcel Kies
Beiträge: 16
Registriert: 29.04.2016 14:16
Studienrichtung: Regenerative Energiesysteme

Re: MIPS Programmierung

Beitrag von Marcel Kies » 01.02.2017 19:34

hallo zusammen,
ist eine etwas spezielle frage, aber weiß jemand ob man Bypass / Forwarding auch bei store/load-Befehlen anwenden kann?
dank und gruss

schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: MIPS Programmierung

Beitrag von schoene » 10.02.2017 08:20

Hallo,

beim Store Befehl sind beide Register Quelle und können über die Bypasses bereitgestellt werden. Da er kein Register schreibt, kann er auch nie Ursache eines Hassard sein. Beim Load Befehl sieht das ganz anders aus, hier ist nur das Adressregister Quelle und kann über die Bypasses bereitgestellt werden. Die Daten für das Zielregister werden aber erst im 4. Takt (Mem-Phase) aus dem Speicher geladen und können damit auch wenn beide Bypasses vorhanden sind nie bereits vom Folgebefehl verwendet werden. Hier ist unbedingt ein optimierender Compiler notwendig, der wie in Übung 7 Aufgabe 2 durch umsortieren der Befehlsreihenfolge von der vorherigen Einsprungsmarke bis zum nächsten Sprungbefehl eine störungsfreie Befehlsfolge realisiert. Siehe auch:
https://wwwpub.zih.tu-dresden.de/~ss17/ ... _pipe.html
Am besten das selbst im MIPS-Simulator mal mit der Übung 7 testen.

Ich hoffe alle Deine Fragen beantwortet zu haben.
Siegmar Schöne

Lorelie97
Beiträge: 3
Registriert: 19.01.2017 13:46

Re: MIPS Programmierung

Beitrag von Lorelie97 » 13.02.2017 10:38

Wie kann man AND und OR in Hexadezimal verwenden bei der MIPS- Programmierung:
z.B.
ANDI R10,R5,0x100
ORI R10,R10,0xFF
R5 ist hierbei -7.

schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: MIPS Programmierung

Beitrag von schoene » 13.02.2017 12:16

Hallo,

die Verknüpfung erfolgt natürlich immer binär. Die Hex- Darstellung wird nur zur verkürzten Darstellung wie auch bei der Arithmetik verwendet.

Code: Alles auswählen

R5 = -7 ist binär als Betrag in 32 Bit 0000 0000 0000 0000 0000 0000 0000 0111
                  oder Hexadezimal             0      0      0       0      0      0       0      7

Das B-Komplement dazu ist die Bitweise Negation und danach +1. Also:
                                                      1111 1111 1111 1111 1111 1111 1111 1000
                                               +                                                                  1
                                                ---------------------------------------------------------------------
                                                      1111 1111 1111 1111 1111 1111 1111 1001  = -7
 and r10,r5,0x100                             0000 0000 0000 0000 0000 0001 0000 0000
                                               -----------------------------------------------------------------------
  R10 =                                           0000 0000 0000 0000 0000 0001 0000 0000
ori r10,r10,0xff                                 0000 0000 0000 0000 0000 0000 1111 1111
                                               -----------------------------------------------------------------------
R10 =                                             0000 0000 0000 0000 0000 0001 1111 1111 = 0x1ff
                                                     ======================================
Sie sollten das ganze im Simulator noch einmal testen. Dort können Sie die Werte auch noch beliebig wechseln und dann sehen was jeweils daraus wird.

Jace
Beiträge: 9
Registriert: 07.10.2015 15:16

Re: MIPS Programmierung

Beitrag von Jace » 13.02.2017 12:21

Einfach die Hexadezimalzahl in eine binäre Zahl umwandeln.
Ist ja ganz einfach mit dem Taschenrechner möglich.

schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: MIPS Programmierung

Beitrag von schoene » 13.02.2017 13:27

Hallo,

da in meiner 1. Antwort das nicht richtig funktioniert hat, weil der Editor auch bei Code die proportionalschrift verwendet und nicht eine Schrift mit fester Breite pro Zeichen. Hier noch einmal als Bild und auch als Assembler Quelle für den eduMIPS. Ich hoffe das gelingt.
Bildschirmfoto vom 2017-02-13 13-16-15.png
Eine 2. Datei nimmt er nicht an. Ich sende sie in der nächsten Nachricht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: MIPS Programmierung

Beitrag von schoene » 13.02.2017 13:33

Hallo,

und hier noch als Quelle für den eduMIPS Simulator. Es können keine *.s Dateien geladen werden. Ich habe noch ein .txt angehängt. Assembler Quellen haben zwar eigentlich immer das .s aber der eduMIPS nimmt die Datei auch in der Form. Also teste sie mal.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten

Zurück zu „1. Semester: Diskussionen“