Wie sind die Registerkonvention im Assembler zu verstehen?

Guten Morgen,
ich bin Schülerstudentin und sitze seit ca 1 Woche an einer Aufgabe in Mips, die wir nun endlich fertig haben. Nun sind wir allerdings auf ein Problem gestoßen und zwar wissen wir nicht wie wir mit den Registerkonventionen umzugehen haben.

Ich zähle nun einmal die Regeln zu einer Funktion mit Funktionsaufrufen (nicht Blattfunktion auf), darunter (in dick) befinden sich meine Fragen und Kommentare.

Konventionen:

– Sichere $ra auf dem Stack!

Ist für uns klar, denn die Returnadresse geht sonst nach einem Funktionsaufruf verloren und es kommt zu einer Endlosschleife.

– Weise Variablen, die nach einem Aufruf benötigt werden, an

einen $si Register zu und sichere zuvor $si auf dem Stack.

– weise Variablen, die nach einem Aufruf nicht länger benötigt

werden, an einen $ti Register zu

Ich nehme diese zwei Punkte einmal zusammen, denn hier beginnt das böse Übel.
Wie ist das denn eigentlich gemeint ? Ich persönlich verstehe es so, dass die $si Register vor dem Aufruf in den Stack geladen werden müssen, wenn sie in der aufzurufenden Funktion auch vorhanden sind. Und durch das Speichern wird der Wert nicht überschrieben. Die Frage wäre nun, wenn ich ein Register (z.b für einen Counter) benötige, dass nicht in der aufzurufenden Funktion vorkommt, ich es auch auf den Stack speichern muss, oder ob es dann ein t Register wird, statt ein s?

Man sagt ja, dass die t-Register sind für die Haltung kurzlebiger (temporärere) Variablen bestimmt sind. Nur was ist damit genau gemeint?

– kopiere Argumente ($ai) , die nach einem Aufruf benötigt

werden, in ein $si-Register und sichere zuvor $si auf dem

Keller

Was meint man hiermit genau.

Es wäre sehr nett, wenn ihr konkret werden würdet, denn ich verstehe das meiste im Internet schon nicht.

Vielen Dank im Voraus

Luisa

Computer, Mathematik, CPU, programmieren, Assembler, Informatik, Programmiersprache, Register
Wie kann ich den zerstörten KDE Desktop in Kubuntu wieder reparieren?

Hallo,

ich habe gestern Kubuntu 18.10 installiert auf folgendem System:

Intel Xeon E3-1231 V3 8 GB RAM GPU: NVIDIA GTX 980 Gainward Phantom (Desktop-PC, also kein Notebook)

(habe die NVIDIA Treiber unter "zusätzliche Treiber" installieren lassen nach der frischen Installation)

Gestern nacht aber hat es den Desktop komplett zerschossen. DH nach der Anmeldung war erst mal das Startmenü verschoben. Dann neu gestartet und dann kam gar kein Startmenü mehr, sondern die Taskleiste unten war auch völlig verschoben und nur noch zum Teil sichtbar. Und jetzt geht garnichts mehr .

hab folgende Anleitung durchprobiert, aber leider ohne Erfolg:

https://www.pcwelt.de/ratgeber/KDE-Plasma-5-Zurueck-zu-Standardeinstellungen-9935010.html

Der Desktop ist immernoch zerstört.

An diesen Desktop PC ist nur ein herkömmlicher 23 Zoll Monitor angeschlossen und ich habe diesbezüglich was die Signalausgabe angeht, keine Settings vorgenommen. Einfach nach der Installation von Kubuntu, die NVIDIA Treiber zusätzlich eingefügt unter "Zusätzliche Treiber" und ein paar Programme aus den öffentlichen Packetquellen installiert.

Auf meinem Laptop hatte ich vor einigen Monaten als ich mal Kubuntu darauf probieren wollte, das gleiche Problem. Es war nicht zu benutzen, weil auch da der Desktop ziemlich schnell nach der Installation zerstört war.

Danke

Computer, Technik, Linux, Desktop, programmieren, OS, Programmiersprache, Technologie, Serverprobleme, Spiele und Gaming
Python Programmierumgebung Anaconda oder Visual Studio?

Hallo zusammen :)

Ich möchte die Programmiersprache Python lernen, bin aber noch Programmieranfänger. Kann bisher nur etwas Java. Java habe ich bisher immer in Eclipse programmiert. Nun suche ich für Python eine andere Programmierumgebung, ich glaube das nennt sich dann IDE. Ich dachte da zuerst an Visual Studio, weil man da auch mehrere Sprachen progammieren kann und das ja ganz nützlich sein kann, wenn man noch Sachen wie C++ oder JavaScript lernen möchte. Jedoch gibt es ja auch Anaconda für Python. Das verwirrt mich etwas. Ist Anaconda jetzt eine IDE für Python direkt oder lässt sich damit auch weiteres programmieren?

Irgendwo habe ich auch mal gesehen, dass eine Art Visual Studio Code in Anaconde mit enthalten ist. Ist das jetzt das Gleiche wie das normale Visual Studio oder gibt es da Unterschiede? Außerdem gibt es im Startbildschirm von Anaconda noch mehrere Sachen wie Spyder oder Jupyter oder sowas. Was ist das denn genau? Ich versuche mich da einzulesen aber momentan verwirrt mich das alles mehr als es mich weiter bringt. Ich würde mich riesig freuen, wenn mir jemand mal erklären kann, was es mit den ganzen Einzelheiten aus sich hat.

Wenn Visual Studio und Anaconde im Groben das Gleiche sind, was würdet ihr mir dann eher empfehlen?

Ich hoffe ihr könnte meine Verwirrung etwas auflösen :D Wäre euch wirklich dankbar für jede Hilfe.

Mit freundlichen Grüßen

Computer, Software, programmieren, Programmiersprache, entwickeln

Meistgelesene Beiträge zum Thema Programmiersprache