关于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编写的时候就是使用的旧版手册,现在我很矛盾,我到底要参照旧版手册还是新版手册?难道旧版是对的,新版给改错了?那为什么描述却没有变,还和旧版的一样? 顶一下! 新版手册的确是错了,在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。 额,原来手册也有错误
页:
[1]