You cannot run x86_64 programs on a 32-bit kernel without any emulation. (Another way works fine, albeit without emulation.)
To be able to run 64-bit code on x86_64, you need to enter "long mode", for which you need to configure the appropriate page tables (among other things). The 32-bit kernel will not make any 64-bit tables or mappings. Thus, user space code cannot enter 64 bit mode. Perhaps with some help the kernel, but the 32-bit kernel is simply not ready for such things.
And since you can run 32-bit code just fine with a 64-bit kernel, there is currently no real reason not to use a 64-bit kernel, especially if you have code that can benefit from 64-bit mode (in particular , more registers).
Why don't you just boot from the 64-bit live-cd? Or install a 64-bit distribution on a separate disk or partition?
source share