Du musst auch ESP sichern. Ansonsten wäre es natürlich auch so möglich, ich mache es so:
1) Register sichern
2) ESP in ne globale Variable
3) Scheduler aufrufen
4) Der Scheduler sichert die globale Variable und schreibt den gesicherten ESP des nächsten Stacks rein
5) Alle Register wiederherstellen.