32 ビット汎用 OS (カーネルの変更なし/特別なドライバー/ハイパーバイザーなし) で Amd64 命令 (Long モード) を使用する方法はありません。
それの訳は:
1) ネイティブ 64 ビット命令を使用するには、ロング モードに切り替える必要があります。これは特権アクションです。CPU が 64 ビット モードに切り替えられた場合、32 ビット OS カーネルは動作し続けることができないため、カーネルに入る前に元に戻す必要があります。
2) ただし、カーネルは、タイマー (スケジューラ) やその他のハードウェア割り込み (ドライバー) のために、非同期で呼び出されることがよくあります。64 ビット レジスタを保存したり、モードを long から protected に変更したりしません。
32 ビット OS で 64 ビット タスクを実行する特別なドライバーを作成することは可能かもしれませんが、そのようなドライバーは 64 ビット カーネルおよびカーネルの動的パッチャーに似ています。私は誰もそのような解決策を知りません。
32 ビット OS で実行している場合、64 ビット ALU と CPU のレジスタにアクセスするために、MMX、SSE、SSE2、SSE3、AVX のみを使用できます。
Linux、一部の BSD、Mac OS X には、64 ビット カーネルを使用するモードがありますが、ユーザー空間のソフトウェアは 32 ビットであると言えます。このような場合、カーネルは 64 ビット モードを認識しており、64 ビット レジスタにアクセスしてタスク スイッチを実行できるため、32 ビット アプリケーションと 64 ビット アプリケーションの両方を実行できます。私の知る限り、MS Windows にはそのようなモード自体はありません (W7 は 32 ビット モードをエミュレートしますが、これは私の MS をシミュレーターと呼んでいるので、カーネル内の機能ではないと思います)。
その他の可能性 (CPU がハードウェア仮想化をサポートしている方がよい) は、32 ビットおよび 64 ビットのゲスト OS で 64 ビット ハイパーバイザー (VMware/Xen、その他の高価なソリューション) を使用することです。VirtualBox は、ハイパーバイザーを使用する別のオプションであり、無料で使用できます。