Skip to content

MOVD:x86 move向量指令

MOVD 属于 MMX 的 move 类 SIMD 指令。传统、VEX 与 EVEX 形式如共享该助记符,会集中列在本页。

操作码
Intel SDM · 见各编码形式
指令集
MMX / SSE2
英文全称
MOVD
参考资料
Intel SDM
页码
01MOVD02m32, xmm
01
指令助记符MOVDmnemonic

MOVD 的 MMX 编码。

02
操作数m32, xmmdestination

Intel 官方资料列出的一个操作数形式;全部形式见下表。

MOVD · REGISTER OPERATIONX86 · MOVE
元素数量向量宽度 ÷ 元素宽度4
vs2 · xmm1第一来源
xmm1[127:0]
vs2[3]432 bits
vs2[2]332 bits
vs2[1]232 bits
vs2[0]132 bits
vd · xmm0(结果)move
xmm0[127:0]
vd[3]4move
vd[2]3move
vd[1]2move
vd[0]1move
每个圆球代表一个完整元素强调背景:目标写入高索引在左、低索引在右

指令形式

语法说明
MOVD m32, xmmIntel 官方操作数形式
MOVD mm, r32Intel 官方操作数形式
MOVD r32, mmIntel 官方操作数形式
MOVD r32, xmmIntel 官方操作数形式
MOVD xmm, m32Intel 官方操作数形式
MOVD xmm, r32Intel 官方操作数形式

操作语义

操作数按 Intel SDM 中该编码规定的 packed 元素或低位标量解释。元素 0 位于向量寄存器最低有效位;128 位 lane 内行为与跨 lane 行为以具体形式为准。

注意点

修改的寄存器

显式目标寄存器或内存被写入,来源保持不变。传统双操作数形式可能覆盖第一来源;VEX/EVEX 非破坏性形式使用独立目标,并按编码规则清零有效宽度以上的目标位。EVEX 写掩码支持合并与 {z} 清零。

内存对齐

普通算术和转换内存来源通常没有额外自然对齐要求;名称为 aligned move 的形式以及部分非临时存储必须按 16、32 或 64 字节操作数宽度对齐。地址始终必须可访问完整操作数。

标志位与异常

纯整数或数据移动形式通常不修改 MXCSR。 只有 Intel SDM 明确规定的比较、测试或字符串形式修改 EFLAGS/RFLAGS;其他形式不修改整数标志。

示例形式

asm
movd m32, xmm

参考

SIGNAL MAINTAINED · BUILT FROM MARKDOWN