Is it possible to use 64-bit instruction in a 32-bit application on intel/64-bit win7

后端 未结 2 1738
孤独总比滥情好
孤独总比滥情好 2021-01-13 23:21

My environment is 64-bit win7, VC2010.

Of course, the intel inside is 64-bit CPU.

Can I use the 64-bit instruction/native machine word(64-bit) in a 32-bit ap

2条回答
  •  心在旅途
    2021-01-14 00:03

    Actually, you kind of can. The mechanism used to switch from 32 to 64 bit mode (which clearly must exist on a 64 bit OS capable of running 32 bit code) is not in any way protected, and can be used from user code. On Windows it is called Heaven's Gate, and it's pretty simple: just a far call with a segment selector of 33h.

    So, how to run 64bit code?

    call 33h:your64bitcode
    ...
    your64bitcode:
    ; do something
    retf
    

    There are, of course, some limitations to what you can do from 64bit code entered in that way, because you're not truly in a 64bit process.

提交回复
热议问题