HÜ2 - 2 Syscalls hintereinander

Benutzeravatar
Dennis
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 29. Sep 2008 21:15

HÜ2 - 2 Syscalls hintereinander

Beitrag von Dennis »

Nabend,

sitze gerade an der HÜ2 und frage mich, warum ein zweiter Syscall meine Register verändert. Ich habs mal durchgesteppt im Mars:

ich nehm ne Eingabe als Integer entgegen und die wird nach $a0 geschrieben.
danach mache ich ein move von a0 nach a1
dann mach mach ich nochmal la a0 Blablatext
und wieder einen Syscall
Jetzt ist register a1 wieder null statt inhalt von altem a1 und in a0 steht der aktuelle wert der nutzereingabe.

Ich sehe mir gerade die Mars hilfe an, komm aber nicht drauf :?



*edit* mit einem $s register gehts, aber mich wunderts trotzdem, ich dachte wenn ich die Register schon unterschiedlich benenne, dann sollte doch auch nur auf a0 gearbeitet werden oder haut der syscall alle $a* um?
...fragt stellvertretend für alle Freunde...

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Re: HÜ2 - 2 Syscalls hintereinander

Beitrag von jan_k »

Syscalls belegen die $aX Register mit dem Ergebnis und manchmal auch mit sowas wie status values.
Vor Syscalls also besser in andere Register sichern.

Hier sieht man in der vierten Spalte ganz gut, was nach Syscalls geschrieben wird:
http://courses.missouristate.edu/KenVol ... lHelp.html

Antworten

Zurück zu „Archiv“