仕事でだいぶ不規則な生活になって来ました。
早く持ちなおさないと

現状を整理してみようと思います。
(1)現在スタックポインタを切り替えることでTSSを使わないタスクスイッチを試みている
(2)割り込みハンドラではeip,cs,eflags,error(あれば)がスタックに積まれる事は
わかっている
(3)iretでは(2)とは逆にeip,cs,eflagsがpopされて実行元に戻ることがわかっている
(4)上記を踏まえてタスク初期化時にはeip,cs,eflags等をあらかじめ積んであるような
スタックを用意すれば良いという事がわかっている。
(5)(1)〜(4)のようにタスクスイッチすることは可能である。(理論的には)

問題点
・関数のinline展開等により割り込みハンドラによって積まれたはずの
eip,cs,eflagsがみつからない。
・スタックダンプマクロをつくりスッタク内を覗き見るがそれらしきものがない。
・そもそもスタックダンプマクロそのものがスタックを破壊せずに、覗き見できているか
ちょっと不安。
・esp,ebpのつじつまあわせがだんだんとよくわからなくなってきた。
とくに完全には割り込みハンドラまで戻らずiretする場合とか。。。
・スタックマクロもebp,espどちらを基準にすべきか・・・

大混乱中です。