【发布时间】:2012-01-30 01:59:02
【问题描述】:
汇编中看似微不足道的问题:我想将整个 XMM0 寄存器复制到 XMM3。我试过了
movdq xmm3, xmm0
但 MOVDQ 不能用于在两个 XMM 寄存器之间移动值。我应该怎么做?
【问题讨论】:
汇编中看似微不足道的问题:我想将整个 XMM0 寄存器复制到 XMM3。我试过了
movdq xmm3, xmm0
但 MOVDQ 不能用于在两个 XMM 寄存器之间移动值。我应该怎么做?
【问题讨论】:
是movapd、movaps 或movdqa
movaps xmm3, xmm0
他们都做同样的事情,但有一个问题:
movapd 和 movaps 在浮点域中运行。movdqa 在整数域中运行根据您的数据类型使用适当的一种以避免域更改停滞。
另外,没有理由使用movapd。始终使用movaps 代替,因为movapd 需要一个额外的字节来编码。
【讨论】:
mov 指令。如果您在进行整数运算并使用movaps,则将值移动到 FP 单元会受到惩罚,并且在下一个整数指令发出给它时将其移回另一个惩罚。
por、orps、orpd