X86操作码将xmm寄存器移动到通用寄存器

tgi*_*hil 0 x86 assembly nasm

什么是短x86指令序列将xmm0寄存器移动到eax和edx?

Pet*_*des 5

你想要xmm0的哪个部分?

movd     eax, xmm0
pextrd   edx, xmm0, 1    ; SSE4.1
Run Code Online (Sandbox Code Playgroud)

获得xmm0的低64位edx:eax.

在64位代码中,movq rax, xmm0/ shld rdx, rax, 32可能优于pextrd,并且不需要SSE4.1.

有关指令集引用和其他内容,请参阅标记wiki.

有关使用哪些说明的提示,请参阅Agner Fog优秀的优化装配指南.