我的环境是64位win7,VC2010.
当然,intel里面是64位CPU.
我可以在32位应用程序中使用64位指令/本机机器字(64位)吗?由于我的大多数代码都是32位,我不想将其移植到64位.
对于一些性能关键的热代码,我想通过编译器内部或内联汇编手动优化它(也是64位VC编译器不支持内联汇编),是否可以运行64位代码fox示例mov rax,rbx in a 32位模式应用?
har*_*old 10
实际上,你可以.用于从32位模式切换到64位模式的机制(显然必须存在于能够运行32位代码的64位操作系统上)不受任何方式保护,并且可以从用户代码中使用.在Windows上,它被称为Heaven's Gate,它非常简单:只需要一个33h的段选择器远程调用.
那么,如何运行64位代码?
call 33h:your64bitcode
...
your64bitcode:
; do something
retf
Run Code Online (Sandbox Code Playgroud)
当然,对于以这种方式输入的64位代码可以做些什么有一些限制,因为你不是真正的64位进程.
如果您的应用程序使用 32 位指令集,则不可以,您不能选择在同一应用程序中“有时”使用 64 位指令。不过,还有一些选择:
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |