在英特尔文档"Architectures Software Developer’s Manual Vol 2A"中,表2-4显示了REX前缀位的重要性。
有没有人能给我解释一下W=0的意思?上面写的是0 = Operand size determined by CS.D
,但我不明白CS.D
是什么意思。
发布于 2012-08-16 01:47:46
CS.D
代表与当前代码段相关联的段描述符的“默认操作大小”字段。它控制地址和操作数的默认大小,并且可以设置为默认的16位或32位操作数大小。
在64位aka长模式(CS.L=1)中,CS.D =32位的唯一有效设置为,因此清除W位的REX前缀将默认操作数大小保留为32位.(操作数大小前缀可以覆盖操作数大小最小为16)。
长模式下的默认地址大小为64位(指令上的地址大小前缀将其覆盖为32)。
段描述符在第3A卷-系统编程指南,第1部分,第3.4.5章段描述符中有详细描述。
第1卷-基本体系结构,第3.6章操作数大小和地址大小属性中也讨论了D
字段的影响。
https://stackoverflow.com/questions/11970750
复制相似问题