Programmiersprache – die besten Beiträge

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

Meistgelesene Beiträge zum Thema Programmiersprache