首页
社区
课程
招聘
[求助]VT中32位下的VMCS
发表于: 2013-11-9 15:17 5048

[求助]VT中32位下的VMCS

2013-11-9 15:17
5048
最近在看VT……有一个蛋疼的问题:处理器工作在32位时(即IA32模式),VMCS中的各种指针、存储寄存器的位置是怎么处理的。
以前以为所有情况都是按64位处理的,只是工作在32位的OS中时,各类指针和寄存器的高位清零,但现在看起来有些混乱
手册上通常的解释是:
(64 bits; 32 bits on processors that do not support Intel 64 architecture).
这类问题似乎会对应多种情况:处理器不支持IA32E模式、处理器支持IA32E模式但是工作在IA32模式下,手册也没有说明。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
1)工作在 32 位模式不叫 IA32 模式,叫做 legacy 模式。IA32 是指 32 位的 x86 架构。

2)VMCS 中的这段分两大类:
     一类是 natural-width,即在支持 64 架构的处理器上是 64 位,否则为 32 位。
     另一类是固定宽度的,分为 16 位,32 位,以及 64 位。以 64 位字段为例,不论支不支持 64 位架构,它们都是 64 位的。
     在 32 位下,访问 64 位的 VMCS 字段,要分两次读写 full high 类型。
2013-11-9 16:08
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
3
thx!
2013-11-9 19:52
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
4
那么……也就是说在支持64位架构的处理器上,即使工作在legacy 模式下,属于natural-width的段也是64位的么?
2013-11-9 19:54
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
是的,在 legacy 模式也是 64 位。分两次进行读写
2013-11-9 20:22
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
6
多谢大牛指教
那从手册看上如何区分某个段是natural-width的或是固定宽度的
2013-11-9 20:37
0
游客
登录 | 注册 方可回帖
返回
//