assembly - MMX 是否确实支持 PADDD 指令,尽管 Intel 手册中缺少该指令?

标签 assembly x86 mmx

我在 NASM 中编写了这段代码:

PADDD mm0, mm1

并且组装没有错误,但是这条指令虽然存在于NASM中,但我在英特尔指令手册中找不到它,我找到的只是这样:

PADDD xmm1, xmm2/m128

它需要一个xmm寄存器而不是一个mm寄存器。
这是PADDD mm0, mm1的操作码:0FFEC1
这是 PADDD xmm0, xmm1 的操作码:660FFEC1
那么为什么英特尔的指令手册中缺少 PADDD mm0, mm1 呢?

最佳答案

这是当前版本英特尔手册中的一个简单的拼写错误/遗漏案例。

关于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 月版本。

这里没什么可看的;请继续前进。

关于assembly - MMX 是否确实支持 PADDD 指令,尽管 Intel 手册中缺少该指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616973/

相关文章:

c++ - 为什么 GCC 调用 libc 的 sqrt() 而不使用它的结果?

memory-management - 转储 x86 CPU 的 TLB 缓冲区的内容

delphi - Delphi 是否支持所有 MMX/SSE 指令?

c++ - 访问 mm1 寄存器部分

c - 先前的堆栈变量

assembly - 实模式中断处理例程未按预期工作

assembly - 将数据从一个变量复制到另一个变量

assembly - 为什么函数参数在 x86 上占用至少 4 个字节的堆栈?

performance - 内联ASM : Use of MMX returns NaN seconds on timer

assembly - 在 x86-64 AT&T 汇编中,地址前面的星号 * 意味着什么?