Hallo zusammen.
Ich wollte mich mal mit der direkten Kompilierung einer Sprache in Assembler auseinandersetzen.
Jedoch erhalte ich einen Fehler und kann ihn mir bei partout nicht erklären, weiß hier vllt jemand Rat?
Dieser Code (2 Variablen) funktioniert:
Alles anzeigen
Dieser jedoch (3 Variablen) nicht. Es kompiliert fehlerfrei, jedoch crasht es zur Laufzeit:
Alles anzeigen
Wie man sehen kann, fordere ich Speicher an und move die Variable genau wie die anderen beiden vorherigen. Woran kann der Fehler liegen? Habe ich zuwenig Speicher auf dem Stack? Und wenn ja, wieso?
Das "runtime" C Program sieht im übrigen so aus:
Alles anzeigen
Und kompiliert wird ganz normal per
Weiß jemand woran es liegen könnte?
edit:
Ich bin der Meinung, dass das Problem mit
Addiere ich natürlich mehr oder weniger als 12 Byte (also das, was ich auch angefordert habe) crasht es (natürlich) auch.
Ich wollte mich mal mit der direkten Kompilierung einer Sprache in Assembler auseinandersetzen.
Jedoch erhalte ich einen Fehler und kann ihn mir bei partout nicht erklären, weiß hier vllt jemand Rat?
Dieser Code (2 Variablen) funktioniert:
Quellcode
Dieser jedoch (3 Variablen) nicht. Es kompiliert fehlerfrei, jedoch crasht es zur Laufzeit:
Quellcode
Wie man sehen kann, fordere ich Speicher an und move die Variable genau wie die anderen beiden vorherigen. Woran kann der Fehler liegen? Habe ich zuwenig Speicher auf dem Stack? Und wenn ja, wieso?
Das "runtime" C Program sieht im übrigen so aus:
Quellcode
Und kompiliert wird ganz normal per
Weiß jemand woran es liegen könnte?
edit:
Ich bin der Meinung, dass das Problem mit
addl $12, %esp
zusammenhängt. Ohne diesen Teil wird das Programm zwar nie beendet (läuft scheinbar ewig) crasht jedoch nicht.Addiere ich natürlich mehr oder weniger als 12 Byte (also das, was ich auch angefordert habe) crasht es (natürlich) auch.