そういや俺

まだ 64 bit 開発ってやった事が無いんだよな。java .NET もネイティブも。java .NET は殆ど意識する事は無いんだろうけどさ。ネイティブの 64 bit 開発ってどうやるんだろうな…。Win32 API は普通に使えるんだろうか。64 bit メモリ空間に 32 bit DLL を読み込んだりしているんだろうか…。16 bit と 32 bit 環境の共存にはサンクとかいう仕組みが使われていたらしいのを薄ら覚えている。実際にそういうコードに関わった事は無い。俺がプログラミングを始めた頃には 32 bit 開発が主流だったからね。
http://support.microsoft.com/kb/154093/ja
http://ja.wikipedia.org/wiki/WOW64
そういう事か。なる程ねえ。思ってたよりも随分と無駄のある仕組みなんだな。64 bit プロセスは 32 bit アドレス空間を避けて使うのが理想的なのに使っちゃってるんだな。32 bit プロセスはちゃんと 16 bit アドレス空間にはアクセス出来なくなってるのにねえ。