Re: 执行32位指令的64位指令需要切换吗?
Windows内核
执行32位指令的64位指令需要切换吗?
Thomson
2009-06-09, 21:27 下午
在amd64 cpu上执行32位的指令和64位的指令的时候,需不需要切换,比如,32位指令和64位指令能混合放在一起吗?
如果需要切换,怎么来做这个切换?
Re: 执行32位指令的64位指令需要切换吗?
格蠹老雷
2009-06-16, 23:03 下午
Thomson,建议你读一下IA手册卷2A的第二章,指令格式。特别是读一下2.2节,专门介绍IA-32e模式的指令格式。简单理解,很多IA指令的操作码是不分32位或64位的,操作数(寄存器、立即数、地址等)才分32位,64位,16位。一条指令,比如MOV,它可以有32位的操作数,也可以有64位的操作数。
IA-32e模式(Intel64的64位模式)有两个子模式,兼容模式和64位模式,无论在哪种模式,都可以使用非当前模式默认宽度的操作数,也就是64位模式下,使用32位操作数,或者32位模式下使用64为操作数都是可以的,这是不需要切换模式的。