MMX 是不是真的支持 PADDD 指令,即使英特尔的手册中没有它?
Posted
技术标签:
【中文标题】MMX 是不是真的支持 PADDD 指令,即使英特尔的手册中没有它?【英文标题】:Is the PADDD instruction actually supported by MMX, even though it's missing from Intel's manual?MMX 是否真的支持 PADDD 指令,即使英特尔的手册中没有它? 【发布时间】:2017-06-18 16:12:31 【问题描述】:我在 NASM 中编写了这段代码:
PADDD mm0, mm1
而且它的组装没有错误,但是这条指令,虽然它存在于 NASM 中,但我在 Intel 指令手册中找不到它,我找到的只是:
PADDD xmm1, xmm2/m128
这需要xmm
寄存器而不是mm
寄存器。
这是PADDD mm0, mm1
的操作码:0FFEC1
这是PADDD xmm0, xmm1
的操作码:660FFEC1
那么为什么英特尔的说明手册中缺少PADDD mm0, mm1
?
【问题讨论】:
我不知道你的来源,但它存在here。 @BenSteffan 我也在这里找到了它:en.wikipedia.org/wiki/X86_instruction_listings。但在手册中,它并不存在。 你似乎是对的。在最新的Intel manual 中,明显没有 mmx 变体。在旧版本的 Intel manual from 2005 中列出。 作为记录,它也出现在 2017 年 3 月的第 2 卷中。 【参考方案1】:这是当前版本的英特尔手册中出现拼写错误/遗漏的简单案例。
在托管英特尔文档副本的this site 上(尽管不需要最新的英特尔文档),存在MMX
的操作码:
Opcode/Instruction Op/En 64/32 bit Mode Support CPUID Feature Flag Description 0F FC /r1 PADDB mm, mm/m64 RM V/V MMX Add packed byte integers from mm/m64 and mm.
您还可以在 an older Intel manual from 2005 以及 2017 年 3 月的版本中找到它。
这里没什么可看的;请继续前进。
【讨论】:
以上是关于MMX 是不是真的支持 PADDD 指令,即使英特尔的手册中没有它?的主要内容,如果未能解决你的问题,请参考以下文章
MultiMedia eXtensions - MMX:第一套应用于英特尔 80x86 指令集的 SIMD 扩展