Beinflussung des Stackpointers
-
ich habe ein Programm, das die Inhalte des Stackpointers und des Statusregisters auf den Bildschirm ausgibt.
Das Programm ruft mehrere Unterprogramme auf (vom Hauptprogramm ins erste Unterprogramm, vom ersten Unterprogramm ins zweite Unterprogramm, vom zweiten Unterprogramm ins dritte usw.).
Ich sichere den Inhalt des Statusregisters mit pushf vor dem ersten Unterprogrammaufruf. Nachdem ich wieder im Hauptprogramm bin, hole ich mit popf den Inhalt des Statusregisters vom Stack.
Mir ist aufgefallen, dass der Stackpointer ohne pushf und popf andere Werte aufweist, als wenn ich den Inhalt des Statusregisters sichere. Ist das normal?
Warum ist das so?
Haben die Befehle pushf und popf Auswirkungen auf den Inhalt des Stackpointers?
-
gast1 schrieb:
Mir ist aufgefallen, dass der Stackpointer ohne pushf und popf andere Werte aufweist, als wenn ich den Inhalt des Statusregisters sichere. Ist das normal?
Ja.
gast1 schrieb:
Warum ist das so?
Nach jedem push/pop wird (e)sp nunmal dekrementiert/inkrementiert. Das verhaelt sich auch bei pushf/popf nicht anders.
gast1 schrieb:
Haben die Befehle pushf und popf Auswirkungen auf den Inhalt des Stackpointers?
Siehe oben.