在64位模式下,默认地址大小为64位。如果存在地址大小覆盖前缀(67h),则地址大小为32位。
我意识到规范的64位地址通过最重要的实现位(全0或全1)具有位63。 32位地址(通过将67h前缀为64位模式的指令获得)是否需要采用规范形式?如果是,那么这个规范形式是如何定义的?
答案 0 :(得分:4)
通过对虚拟地址的重要部分(低48位)进行符号扩展来形成规范地址;最重要的部分被视为标志。
现在推测(不愿意查阅 - 但也没有必要回答你的问题) - 在64位模式下,32位地址有两种可能的行为:
0x00000000xxxxxxxx
都是规范的。0xffffffff80000000
... 0x000000007fffffff
映射 - 再次,所有这些都是规范的。< / LI>
醇>
由于结果(32位地址总是隐式地为规范形式)是相同的,所以CPU实际上做什么并不重要 - 32位地址是规范的,周期。