寄存器sse2指令集

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sse2指令集

1移动指令:

1. Movaps

movaps XMM,XMM/m128 movaps XMM/128,XMM

把源存储器内容值送入目的寄存器,当有m128时,必须对齐内存16字节,也就是内存地址低4位为0.

2. Movups

movups XMM,XMM/m128 movaps XMM/128,XMM

把源存储器内容值送入目的寄存器,但不必对齐内存16字节

3. Movlps

movlps XMM,m64

把源存储器64位内容送入目的寄存器低64位,高64位不变,内存变量不必对齐内存16字节4. Movhps

movhps XMM,m64

把源存储器64位内容送入目的寄存器高64位,低64位不变,内存变量不必对齐内存16字节.

5. Movhlps

movhlps XMM,XMM

把源寄存器高64位送入目的寄存器低64位,高64位不变.

6. Movlhps

movlhps XMM,XMM

把源寄存器低64位送入目的寄存器高64位,低64位不变.

7. movss

movss XMM,m32/XMM

原操作数为m32时:dest[31-00] <== m32 dest[127-32] <== 0

原操作数为XMM时: dest[31-00] <== src[31-00] dest[127-32]不变

8. movmskpd

movmskpd r32,XMM

取64位操作数符号位

r32[0] <== XMM[63] r32[1] <== XMM[127] r32[31-2] <== 0

9. movmskps

movmskps r32,XMM

取32位操作数符号位

r32[0] <== XMM[31] r32[1] <== XMM[63] r32[2] <== XMM[95] r32[3] <== XMM[127] r32[31-4] <== 0

10. pmovmskb

pmovmskb r32,XMM

取16位操作数符号位具体操作同前

r[0] <== XMM[7] r[1] <== XMM[15] r[2] <== XMM[23] r[3] <== XMM[31]

r[4] <== XMM[39] r[5] <== XMM[47] r[6] <== XMM[55] r[7] <== XMM[63]

r[8] <== XMM[71] r[9] <== XMM[79] r[10] <== XMM[87] r[11] <== XMM[95]

r[12] <== XMM[103] r[13] <== XMM[111] r[14] <== XMM[119] r[15] <== XMM[127] r[31-16] <== 0

11. movntps

movntps m128,XMM

m128 <== XMM 直接把XMM中的值送入m128,不经过cache,必须对齐16字节.

12. Movntpd

movntpd m128,XMM

m128 <== XMM 直接把XMM中的值送入m128,不经过cache,必须对齐16字节.

13. Movnti

movnti m32,r32

m32 <== r32 把32寄存器的值送入m32,不经过cache.

14. Movapd

movapd XMM,XMM/m128 movapd XMM/m128,XMM

把源存储器内容值送入目的寄存器,当有m128时,必须对齐内存16字节

15. Movupd

movupd XMM,XMM/m128 movapd XMM/m128,XMM

把源存储器内容值送入目的寄存器,但不必对齐内存16字节.

我感觉这两条指令同movaps 和movups 指令一样,不过又不确定.

16. Movlpd

movlpd XMM,m64 movlpd m64,XMM

把源存储器64位内容送入目的寄存器低64位,高64位不变,内存变量不必对齐内存16字节

17. Movhpd

movhpd XMM,m64 movhpd m64,XMM

把源存储器64位内容送入目的寄存器高64位,低64位不变,内存变量不必对齐内存16字节.

18. Movdqa

movdqa XMM,XMM/m128 movdqa XMM/m128,XMM

把源存储器内容值送入目的寄存器,当有m128时,必须对齐内存16字节.

19. Movdqu

movdqu XMM,XMM/m128 movdqu XMM/m128,XMM

把源存储器内容值送入目的寄存器,但不必对齐内存16字节.

20. movq2dq

movq2dq XMM,MM

把源寄存器内容送入目的寄存器的低64位,高64位清零.

21. movdq2q

movdq2q MM,XMM

把源寄存器低64位内容送入目的寄存器.

22. Movd

movd XMM,r32/m32 movd MM,r32/m32

把源存储器32位内容送入目的寄存器的低32位,高96位清零.

movd r32/m32,XMM movd r32/m32,MM

把源寄存器的低32位内容送入目的存储器32位.

23. Movq

movq XMM,XMM/m64 movq MM,MM/m64

把源存储器低64位内容送入目的寄存器的低64位,高64位清零.

movq m64,XMM

把源寄存器的低64位内容送入目的存储器.

2 加法操作

1. addps

addps XMM,XMM/m128

源存储器内容按双字对齐,共4个单精度浮点数与目的寄存器相加,结果送入目的寄存器,内存变量必须对齐内存16字节

2. adds

addss XMM,XMM/m32

相关文档
最新文档