zysyyz 发表于 2010-10-27 18:38

关于intel指令的疑问,难道是手册错了?

intel新版本手册指令:
   51 SQRTPS Wps,Vps
66 51 SQRTPD Wpd,Vpd
F3 51 SQRTSSVss,Wss
F2 51 SQRTSDVsd,Wsd
老版本:
   51 SQRTPS Vps,Wps
66 51 SQRTPD Vpd,Wpd
F3 51 SQRTSSVss,Wss
F2 51 SQRTSDVsd,Wsd

按理说应该是按照新版本的,但是我查了一下,新版旧版指令描述都是一样的:
SQRTPS xmm1, xmm2/m128
SQRTSD xmm1, xmm2/m64
...
按它描述的。那就应该都是Vxx,Wxx,但为什么新版有些改了Wxx,Vxx呢?

参照AMD手册同intel旧版手册是一样的,OD,WinDBG翻译的指令也是同旧版手册一样,但我怀疑OD、WinDBG编写的时候就是使用的旧版手册,现在我很矛盾,我到底要参照旧版手册还是新版手册?难道旧版是对的,新版给改错了?那为什么描述却没有变,还和旧版的一样?

gradkid 发表于 2010-10-28 08:11

顶一下!

xinpinghuang 发表于 2010-11-12 23:29

新版手册的确是错了,在SQRTPS xmm1, xmm2/m128 指令下面的Instruction Operand Encoding里,明确说明了这条指令的 Operand 1 为ModRM:reg (w),Operand 2为ModRM:r/m (r), 根据opcode map前头的说明V 表示reg, W表示r/m,所以正确的表示就是 Vps, Wps。

erazy0 发表于 2010-12-05 20:03

额,原来手册也有错误
页: [1]
查看完整版本: 关于intel指令的疑问,难道是手册错了?