ESP
なんらかの奇妙な理由で、ある関数のスタックポインタが一時的にデクリメントされてから再びインクリメントされるとしましょう。
;; ... we're saving registers ...
push EAX
push EBX
push ECX
push EDX
add ESP, 4 ;; Whoops!
sub ESP, 4 ;; Ah, we're fine; we restored it... or are we?
これで、サブ命令の直前に割り込みがトリガーされる可能性があります。
私が正しく理解していれば、割り込みによってCPUがいくつかの値をスタックにプッシュします。
これは、スタックが破損することを意味しますか?または、OSはどういうわけか(どのように?)プログラムのコンテキストを格納するために別のスタック/メモリを使用しますか?それとも、CPUの特権レベルに依存しますか?(もしそうなら、どのように?)