关于intel指令的疑问,难道是手册错了?
intel新版本手册指令:
51 SQRTPS Wps,Vps
66 51 SQRTPD Wpd,Vpd
F3 51 SQRTSS Vss,Wss
F2 51 SQRTSD Vsd,Wsd
老版本:
51 SQRTPS Vps,Wps
66 51 SQRTPD Vpd,Wpd
F3 51 SQRTSS Vss,Wss
F2 51 SQRTSD Vsd,Wsd
按理说应该是按照新版本的,但是我查了一下,新版旧版指令描述都是一样的:
SQRTPS xmm1, xmm2/m128
SQRTSD xmm1, xmm2/m64
...
按它描述的。那就应该都是Vxx,Wxx,但为什么新版有些改了Wxx,Vxx呢?
参照AMD手册同intel旧版手册是一样的,OD,WinDBG翻译的指令也是同旧版手册一样,但我怀疑OD、WinDBG编写的时候就是使用的旧版手册,现在我很矛盾,我到底要参照旧版手册还是新版手册?难道旧版是对的,新版给改错了?那为什么描述却没有变,还和旧版的一样?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
额,原来手册也有错误
新版手册的确是错了,在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。
顶一下!