Linux Kernel の include/asm-i386/system.h の switch_to() マクロとかで使われていたりして,わりと有名なテクニックなのかもしれませんが, call foo とかは,機械的に pushl $1f jmp foo 1: みたいに,スタックの頭に戻り番地をプッシュして,関数にジャンプする感じに書き換えられるのではないかと思いました. ret もまぁ, pop %ecx jmp *%ecx みたいに,適当に壊しても良いレジスタに戻り値を pop して間接ジャンプすれば大丈夫な気がします. もちろん,本来一命令で済むものを,わざわざメモリ触った挙句命令数増やすのはバカバカしいので,実用性は無いわけですが. アセンブラとか,x86 命令レベルのクロック数とか μOP (マイクロオペレーション) レベルの話とか全然わからない子なので,大きな勘違いをしてい