在英特尔文档“Architectures Software Developer's Manual Vol 2A”中,表 2-4 显示了 REX 前缀位的意义。
有人可以向我解释当 W=0 时如何解释吗?它说0 = Operand size determined by CS.D
,但我不明白什么CS.D
意思。
在英特尔文档“Architectures Software Developer's Manual Vol 2A”中,表 2-4 显示了 REX 前缀位的意义。
有人可以向我解释当 W=0 时如何解释吗?它说0 = Operand size determined by CS.D
,但我不明白什么CS.D
意思。
CS.D
代表与当前代码段相关的段描述符的“默认操作大小”字段。这控制地址和操作数的默认大小,并且可以设置为默认为 16 或 32 位操作数大小。
在 64 位又名长模式 (CS.L=1) 中,CS.D 的唯一有效设置 = 32 位,因此清除了 W 位的 REX 前缀将默认操作数大小保留为 32 位。 (操作数大小前缀可以覆盖操作数大小到 16)。
长模式下的默认地址大小为 64 位(指令上的地址大小前缀将其覆盖为 32)。
段描述符在第 3A 卷 - 系统编程指南,第 1 部分,第3.4.5章段描述符中有详细描述。
第 1 卷 - 基本架构的第3.6章操作数大小和地址大小属性D
也讨论了该字段的影响。