青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

c++初學者

專注技術開發

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
源存儲器的低321個單精度浮點數與目的寄存器的低321個單精度浮點數相加,結果送入目的寄存器的低32位高96位不變,內存變量不必對齊內存16字節

3.       addpd
addpd XMM,XMM/m128
源存儲器內容按四字對齊,共兩個雙精度浮點數與目的寄存器相加,結果送入目的寄存器,內存變量必須對齊內存16字節.

4.       addsd
addsd XMM,XMM/m64
源存儲器的低641個雙精度浮點數與目的寄存器的低641個雙精度浮點數相加,結果送入目的寄存器的低64, 64位不變,內存變量不必對齊內存16字節

5.       paddd
paddd XMM,XMM/m128
把源存儲器與目的寄存器按雙字對齊無符號整數普通相加,結果送入目的寄存器,內存變量必須對齊內存16字節.

6.       Paddq
paddq XMM,XMM/m128
把源存儲器與目的寄存器按四字對齊無符號整數普通相加,結果送入目的寄存器,內存變量必須對齊內存16字節.

7.       Paddq
paddq MM,MM/m64
把源存儲器與目的寄存器四字無符號整數普通相加,結果送入目的寄存器.

8.       Pmaddwd
pmaddwd XMM,XMM/m128
把源存儲器與目的寄存器分4組進行向量點乘(有符號補碼操作),內存變量必須對齊內存16字節..
64 | 64
目的寄存器: a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7
源存儲器: b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7
目的寄存器結果: a0*b0+a1*b1 | a2*b2+a3*b3 | a4*b4+a5*b5 | a6*b6+a7*b7

9.       Paddsb
paddsb XMM,XMM/m128 paddsb MM,MM/m64
源存儲器與目的寄存器按字節對齊有符號補碼飽和相加,內存變量必須對齊內存16字節.

10.   paddsw
paddsw XMM,XMM/m128
源存儲器與目的寄存器按字對齊有符號補碼飽和相加,內存變量必須對齊內存16字節.

11.   paddusb
paddusb XMM,XMM/m128
源存儲器與目的寄存器按字節對齊無符號飽和相加,內存變量必須對齊內存16字節.

12.   Paddusw
paddusw XMM,XMM/m128
源存儲器與目的寄存器按字對齊無符號飽和相加,內存變量必須對齊內存16字節.

13.   Paddb
paddb XMM,XMM/m128
源存儲器與目的寄存器按字節對齊無符號普通相加,內存變量必須對齊內存16字節.

14.   Paddw
paddw XMM,XMM/m128
源存儲器與目的寄存器按字對齊無符號普通相加,內存變量必須對齊內存16字節.

15.   Paddd
paddd XMM,XMM/m128
源存儲器與目的寄存器按雙字對齊無符號普通相加,內存變量必須對齊內存16字節.

16.   Paddq
paddq XMM,XMM/m128
源存儲器與目的寄存器按四字對齊無符號普通相加,內存變量必須對齊內存16字節.

17.    

3 減法操作

1.       subps
subps XMM,XMM/m128
源存儲器內容按雙字對齊,4個單精度浮點數與目的寄存器相減(目的減去源),結果送入目的寄存器, 內存變量必須對齊內存16字節.

2.       Subss
subss XMM,XMM/m32
源存儲器的低321個單精度浮點數與目的寄存器的低321個單精度浮點數相減(目的減去源), 結果送入目的寄存器的低32,96位不變,內存變量不必對齊內存16字節

3.       Subpd
subpd XMM,XMM/m128
把目的寄存器內容按四字對齊,兩個雙精度浮點數,減去源存儲器兩個雙精度浮點數, 結果送入目的寄存器,內存變量必須對齊內存16字節.

4.       subsd
subsd XMM,XMM/m128
把目的寄存器的低641個雙精度浮點數,減去源存儲器低641個雙精度浮點數,結果送入目的寄存器的低64, 64位不變,內存變量不必對齊內存16字節

5.       Psubd
psubd XMM,XMM/m128
把目的寄存器與源存儲器按雙字對齊無符號整數普通相減,結果送入目的寄存器, 內存變量必須對齊內存16字節.(目的減去源)

6.       Psubq
psubq XMM,XMM/m128
把目的寄存器與源存儲器按四字對齊無符號整數普通相減,結果送入目的寄存器, 內存變量必須對齊內存16字節.(目的減去源)

7.       Psubq
psubq MM,MM/m64
把目的寄存器與源存儲器四字無符號整數普通相減,結果送入目的寄存器.(目的減去源)

8.       psubsb
psubsb XMM,XMM/m128
源存儲器與目的寄存器按字節對齊有符號補碼飽和相減(目的減去源),內存變量必須對齊內存16字節.

9.       Psubsw
psubsw XMM,XMM/m128
源存儲器與目的寄存器按字對齊有符號補碼飽和相減(目的減去源),內存變量必須對齊內存16字節.

10.   Psubusb
psubusb XMM,XMM/m128
源存儲器與目的寄存器按字節對齊無符號飽和相減(目的減去源),內存變量必須對齊內存16字節.

11.   Psubusw
psubusw XMM,XMM/m128
源存儲器與目的寄存器按字對齊無符號飽和相減(目的減去源),內存變量必須對齊內存16字節.

12.   psubb
psubb XMM,XMM/m128
源存儲器與目的寄存器按字節對齊無符號普通相減(目的減去源),內存變量必須對齊內存16字節.

13.   Psubw
psubw XMM,XMM/m128
源存儲器與目的寄存器按字對齊無符號普通相減(目的減去源),內存變量必須對齊內存16字節.

14.   Psubd
psubd XMM,XMM/m128
源存儲器與目的寄存器按雙字對齊無符號普通相減(目的減去源),內存變量必須對齊內存16字節.

15.   Psubq
psubq XMM,XMM/m128
源存儲器與目的寄存器按四字對齊無符號普通相減(目的減去源),內存變量必須對齊內存16字節.

16.    

4 比較操作

1.       Maxps
maxps XMM,XMM/m128
源存儲器4個單精度浮點數與目的寄存器4個單精度浮點數比較,較大數放入對應目的寄存器,內存變量必須對齊內存16字節.

2.       Maxss
maxss XMM,XMM/m32
源存儲器低321個單精度浮點數與目的寄存器低321個單精度浮點數比較,較大數放入目的寄存器低32,96位不變內存變量不必對齊內存16字節

3.       Minps
minps XMM,XMM/m128
源存儲器4個單精度浮點數與目的寄存器4個單精度浮點數比較,較小數放入對應目的寄存器,內存變量必須對齊內存16字節.

4.       minss
minss XMM,XMM/m32
源存儲器低321個單精度浮點數與目的寄存器低321個單精度浮點數比較,較小數放入目的寄存器低32,96位不變內存變量不必對齊內存16字節

5.       cmpps
cmpps XMM0,XMM1,imm8 imm8是立即數范圍是0~7
根據imm8的值進行4對單精度浮點數的比較,符合imm8的就置目的寄存器對應的32位全1,否則全0
imm8 = 0,目的寄存器等于原寄存器數時,置目的寄存器對應的32位全1,否則全0
imm8 = 1
,目的寄存器小于原寄存器數時,置目的寄存器對應的32位全1,否則全0
imm8 = 2
,目的寄存器小于等于原寄存器數時,置目的寄存器對應的32位全1,否則全0
imm8 = 4
,目的寄存器不等于原寄存器數時,置目的寄存器對應的32位全1,否則全0
imm8 = 5
,目的寄存器大于等于原寄存器數時,置目的寄存器對應的32位全1,否則全0
imm8 = 6
,目的寄存器大于原寄存器數時,置目的寄存器對應的32位全1,否則全0

6.       pcmpeqb
pcmpeqb XMM,XMM/m128
目的寄存器與源存儲器按字節比較,如果對應字節相等,就置目的寄存器對應字節為0ffh,否則為00h內存變量必須對齊內存16字節.

7.       Pcmpeqw
pcmpeqw XMM,XMM/m128
目的寄存器與源存儲器按字比較,如果對應字相等,就置目的寄存器對應字為0ffffh,否則為0000h, 內存變量必須對齊內存16字節

8.       Pcmpeqd
pcmpeqd XMM,XMM/m128
目的寄存器與源存儲器按雙字比較,如果對應雙字相等,就置目的寄存器對應雙字為0ffffffffh,否則為00000000h內存變量必須對齊內存16字節

9.       Pcmpgtb
pcmpgtb XMM,XMM/m128
目的寄存器與源存儲器按字節(有符號補碼)比較,如果目的寄存器對應字節大于源存儲器,就置目的寄存器對應字節為0ffh, 否則為00h,內存變量必須對齊內存16字節

10.   Pcmpgtw
pcmpgtw XMM,XMM/m128
目的寄存器與源存儲器按字(有符號補碼)比較,如果目的寄存器對應字大于源存儲器,就置目的寄存器對應字為0ffffh, 否則為0000h,內存變量必須對齊內存16字節.

11.   Pcmpgtd
pcmpgtd XMM,XMM/m128
目的寄存器與源存儲器按雙字(有符號補碼)比較,如果目的寄存器對應雙字大于源存儲器, 就置目的寄存器對應雙字為0ffffffffh,否則為00000000h,內存變量必須對齊內存16字節.

5 計算操作

1.       rcpps
rcpps XMM,XMM/m128
源存儲器4個單精度浮點數的倒數放入對應目的寄存器,內存變量必須對齊內存16字節
:比如2.0E0的倒數為1÷2.0E0 = 5.0E-1, 這操作只有12bit的精度

2.       rcpss
rcpss XMM,XMM/32
源存儲器低321個單精度浮點數的倒數放入目的寄存器低32,96位不變

3.       rsqrtps
rsqrtps XMM,XMM/m128
源存儲器4個單精度浮點數的開方的倒數放入對應目的寄存器,內存變量必須對齊內存16字節. 比如2.0E0的開方的倒數為1÷√2.0E0 ≈ 7.0711E-1, 這操作只有12bit的精度.

4.       Rsqrtss
rsqrtss XMM,XMM/32
源存儲器低321個單精度浮點數的開方的倒數放入目的寄存器低32,96位不變,內存變量不必對齊內存16字節.

5.    Pavgb
pavgb MM,MM/m64 pavgb XMM,XMM/m128
把源存儲器與目的寄存器按字節無符號整數相加,再除以2,結果四舍五入為整數放入目的寄存器, 源存儲器為m128,內存變量必須對齊內存16字節. :此運算不會產生溢出.

6.    Pavgw
pavgw MM,MM/m64 pavgw XMM,XMM/m128
把源存儲器與目的寄存器按字無符號整數相加,再除以2,結果四舍五入為整數放入目的寄存器, 源存儲器為m128,內存變量必須對齊內存16字節.

7.       Sqrtpd
sqrtpd XMM,XMM/m128
源存儲器兩個雙精度浮點數的開方放入對應目的寄存器,內存變量必須對齊內存16字節.

8.       Sqrtsd
sqrtsd XMM,XMM/m128
源存儲器低641個雙精度浮點數的開方放入目的寄存器低64,64位不變,內存變量不必對齊內存16字節

6 乘法操作

1.       Mulps
mulps XMM,XMM/m128
源存儲器內容按雙字對齊,4個單精度浮點數與目的寄存器相乘,結果送入目的寄存器,內存變量必須對齊內存16字節.

2.       Mulss
mulss XMM,XMM/32
源存儲器的低321個單精度浮點數與目的寄存器的低321個單精度浮點數相乘,結果送入目的寄存器的低32, 96位不變,內存變量不必對齊內存16字節

3.       Mulpd
mulpd XMM,XMM/m128
源存儲器內容按四字對齊,共兩個雙精度浮點數與目的寄存器相乘,結果送入目的寄存器,內存變量必須對齊內存16字節

4.       Mulsd
mulsd XMM,XMM/m128
源存儲器的低641個雙精度浮點數與目的寄存器的低641個雙精度浮點數相乘,結果送入目的寄存器的低64, 64位不變,內存變量不必對齊內存16字節

5.       Pmuludq
pmuludq XMM,XMM/m128
把源存儲器與目的寄存器的低32位無符號整數相乘,結果變為64,送入目的寄存器低64, 把源存儲器與目的寄存器的高64位的低32位無符號整數相乘,結果變為64,送入目的寄存器高64位內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3
源存儲器: b0 | b1 | b2 | b3
目的寄存器結果: b1*a1 | b3*a3

6.       Pmuludq
pmuludq MM,MM/m64
把源存儲器與目的寄存器的低32位無符號整數相乘,結果變為64,送入目的寄存器.

7.       pmulhw
pmulhw XMM,XMM/m128
源存儲器與目的寄存器按字對齊有符號補碼飽和相乘,取結果的高16位放入目的寄存器對應字中. 內存變量必須對齊內存16字節

8.       pmullw
pmullw XMM,XMM/m128
源存儲器與目的寄存器按字對齊有符號補碼飽和相乘,取結果的低16位放入目的寄存器對應字中. 內存變量必須對齊內存16字節.

9.        

7 除法操作

1.    Divps
divps XMM,XMM/m128
目的寄存器共4個單精度浮點數除以源存儲器4個單精度浮點數,結果送入目的寄存器,內存變量必須對齊內存16字節.

2.    Divss
divss XMM,XMM/32
目的寄存器低321個單精度浮點數除以源存儲器低321個單精度浮點數,結果送入目的寄存器的低32, 96位不變,內存變量不必對齊內存16字節

3.    Divpd
divpd XMM,XMM/m128
目的寄存器共兩個雙精度浮點數除以源存儲器兩個雙精度浮點數,結果送入目的寄存器,內存變量必須對齊內存16字節

4.    Divsd
divsd XMM,XMM/m128
目的寄存器低641個雙精度浮點數除以源存儲器低641個雙精度浮點數,結果送入目的寄存器的低64, 64位不變,內存變量不必對齊內存16字節.

8 位操作

1.       Andps
andps XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

2.       Orps
orps XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

3.       Xorps
xorps XMM,XMM/m128
源存儲器128個二進制位'異或'目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

4.    Unpckhps
unpckhps XMM,XMM/m128
源存儲器與目的寄存器高64位按雙字交錯排列,結果送入目的寄存器,內存變量必須對齊內存16字節.
64 | 64位 
目的寄存器: a0 | a1 | a2 | a3 
源存儲器:  b0 | b1 | b2 | b3 
目的寄存器結果: b0 | a0 | b1 | a1

5.    Unpcklps
 unpcklps XMM,XMM/m128
源存儲器與目的寄存器低64位按雙字交錯排列,結果送入目的寄存器,內存變量必須對齊內存16字節
64 | 64
目的寄存器: a0 | a1 | a2 | a3 
源存儲器:  b0 | b1 | b2 | b3 
目的寄存器結果: b2 | a2 | b3 | a3

6.    Pextrw
pextrw r32,MM,imm8 pextrw r32,XMM,imm8 imm88位立即數(無符號)
從源寄存器中選第imm8(0~3 0~7)個字送入目的寄存器的低16,16位清零.
:imm8范圍為 0~255,當源寄存器為'MM',有效值= imm8 mod 4,當目的寄存器為'XMM',有效值= imm8 mod 8

7.    Pinsrw
pinsrw MM,r32/m32,imm8 pinsrw XMM,r32/m32,imm8
把源存儲器的低16位內容送入目的寄存器第imm8(0~3 0~7)個字,其余字不變
:imm8范圍為 0~255,當目的寄存器為'MM',有效值= imm8 mod 4,當目的寄存器為'XMM',有效值= imm8 mod 8

8.    Pmaxsw
pmaxsw MM,MM/m64 pmaxsw XMM,XMM/m128
把源存儲器與目的寄存器按字有符號(補碼)整數比較,大數放入目的寄存器對應字, 源存儲器為m128,內存變量必須對齊內存16字節

9.    Pmaxub
 pmaxub MM,MM/m64 pmaxsw XMM,XMM/m128
把源存儲器與目的寄存器按字節無符號整數比較,大數放入目的寄存器對應字節, 源存儲器為m128,內存變量必須對齊內存16字節.

10. pminsw
pminsw MM,MM/m64 pmaxsw XMM,XMM/m128
把源存儲器與目的寄存器按字有符號(補碼)整數比較,較小數放入目的寄存器對應字, 源存儲器為m128,內存變量必須對齊內存16字節.

11. Pminub
pminub MM,MM/m64 pmaxsw XMM,XMM/m128
把源存儲器與目的寄存器按字節無符號整數比較,較小數放入目的寄存器對應字節, 源存儲器為m128,內存變量必須對齊內存16字節

12. Maxpd
maxpd XMM,XMM/m128
源存儲器兩個雙精度浮點數與目的寄存器兩個雙精度浮點數比較,較大數放入對應目的寄存器,內存變量必須對齊內存16字節.

13. Maxsd
maxsd XMM,XMM/m128
源存儲器低641個雙精度浮點數與目的寄存器低641個雙精度浮點數比較,較大數放入目的寄存器低64,64位不變內存變量不必對齊內存16字節.

14. Minpd
minpd XMM,XMM/m128
源存儲器兩個雙精度浮點數與目的寄存器兩個雙精度浮點數比較,較小數放入對應目的寄存器,內存變量必須對齊內存16字節.

15. Minsd
minsd XMM,XMM/m128
源存儲器低641個雙精度浮點數與目的寄存器低641個雙精度浮點數比較,較小數放入目的寄存器低64,64位不變內存變量不必對齊內存16字節.

16. Andpd
andpd XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

17. Andnpd
andnpd XMM,XMM/m128
目的寄存器128個二進制位先取'',''源存儲器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節

18. Orpd
orpd XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

19. Xorpd
xorpd XMM,XMM/m128
源存儲器128個二進制位'異或'目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

20. Pslldq
pslldq XMM,imm8
把目的寄存器128位按imm8(立即數)指定字節數邏輯左移,移出的字節丟失.
imm8 == 1
,代表左移8,imm8 == 2,代表左移16.

21. Psrldq
psrldq XMM,imm8
把目的寄存器128位按imm8(立即數)指定字節數邏輯右移,移出的字節丟失.
imm8 == 1
,代表右移8,imm8 == 2,代表右移16.

22. Psllw
psllw XMM,XMM/m128 psllw XMM,imm8
把目的寄存器按字由源存儲器(imm8 立即數)指定位數邏輯左移,移出的位丟失. 低字移出的位不會移入高字,內存變量必須對齊內存16字節.

23. Psrlw
psrlw XMM,XMM/m128 psrlw XMM,imm8
把目的寄存器按字由源存儲器(imm8 立即數)指定位數邏輯右移,移出的位丟失.
高字移出的位不會移入低字,內存變量必須對齊內存16字節.

24. Pslld
pslld XMM,XMM/m128 pslld XMM,XMM imm8
把目的寄存器按雙字由源存儲器(imm8 立即數)指定位數邏輯左移,移出的位丟失. 低雙字移出的位不會移入高雙字,內存變量必須對齊內存16字節.

25. Psrld
psrld XMM,XMM/m128 psrld XMM,imm8
把目的寄存器按雙字由源存儲器(imm8 立即數)指定位數邏輯右移,移出的位丟失.
高雙字移出的位不會移入低雙字,內存變量必須對齊內存16字節.
pand
pand XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節. 我發現與andpd功能差不多,就不知其它特性是否一樣

26. Pandn
pandn XMM,XMM/m128
目的寄存器128個二進制位先取'',''源存儲器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節

27. Por
por XMM,XMM/m128
源存儲器128個二進制位''目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

28. Pxor
pxor XMM,XMM/m128
源存儲器128個二進制位'異或'目的寄存器128個二進制位,結果送入目的寄存器,內存變量必須對齊內存16字節.

29. packuswb
packuswb XMM,XMM/m128 packuswb MM,MM/m64
把目的寄存器按字有符號數壓縮為字節無符號數放入目的寄存器低64
把源寄存器按字有符號數壓縮為字節無符號數放入目的寄存器高64
壓縮時負數變為00h,大于255的正數變為0ffh,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7
源寄存器: b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7
目的寄存器壓縮結果: b0|b1| b2| b3| b4|b5| b6|b7| a0|a1| a2|a3| a4|a5| a6| a7

30. packsswb
packsswb XMM,XMM/m128 packsswb MM,MM/m64
把目的寄存器按字有符號數壓縮為字節有符號數放入目的寄存器低64
把源寄存器按字有符號數壓縮為字節有符號數放入目的寄存器高64
壓縮時小于-128負數變為80h,大于127的正數變為7fh,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7
源寄存器: b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7
目的寄存器壓縮結果: b0|b1| b2| b3| b4|b5| b6|b7| a0|a1| a2|a3| a4|a5| a6| a7

31. packssdw
packssdw XMM,XMM/m128
把目的寄存器按雙字有符號數壓縮為字有符號數放入目的寄存器低64
把源寄存器按雙字有符號數壓縮為字有符號數放入目的寄存器高64
壓縮時小于-32768負數變為8000h,大于32767的正數變為7fffh,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器壓縮結果: b0 | b1 | b2 | b3 | a0 | a1 | a2 | a3

32. punpckldq
punpckldq XMM,XMM/m128
把源存儲器與目的寄存器低64位按雙字交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器排列結果: b2 | a2 | b3 | a3

33. punpckhdq
把源存儲器與目的寄存器高64位按雙字交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3
源寄存器: b0 | b1 | b2 | b3
目的寄存器排列結果: b0 | a0 | b1 | a1

34. punpcklwd
把源存儲器與目的寄存器低64位按字交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7
源寄存器: b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7
目的寄存器排列結果: b4 | a4 | b5 | a5 | b6 | a6 | b7 | a7

35. punpckhwd
punpckhwd XMM,XMM/m128
把源存儲器與目的寄存器高64位按字交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0 | a1 | a2 | a3 | a4 | a5 | a6 | a7
源寄存器: b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7
目的寄存器排列結果: b0 | a0 | b1 | a1 | b2 | a2 | b3 | a3

36. punpcklbw
punpcklbw XMM,XMM/m128
把源存儲器與目的寄存器低64位按字節交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0|a1| a2| a3| a4|a5| a6|a7| a8|a9| aA|aB| aC|aD| aE| aF
源寄存器: b0|b1| b2| b3| b4|b5| b6|b7| b8|b9| bA|bB| bC|bD| bE| bF
目的寄存器排列結果: b8|a8| b9| a9| bA|aA| bB|aB| bC|aC| bD|aD| bE|aE| bF| aF

37. punpckhbw
把源存儲器與目的寄存器高64位按字節交錯排列,內存變量必須對齊內存16字節.
64 | 64
目的寄存器: a0|a1| a2| a3| a4|a5| a6|a7| a8|a9| aA|aB| aC|aD| aE| aF
源寄存器: b0|b1| b2| b3| b4|b5| b6|b7| b8|b9| bA|bB| bC|bD| bE| bF
目的寄存器排列結果: b0|a0| b1| a1| b2|a2| b3|a3| b4|a4| b5|a5| b6|a6| b7| a7

38. shufps
shufps XMM,XMM/m128,imm8
把源存儲器與目的寄存器按雙字劃分,imm8(立即數)八個二進制位(00~11,00^11,00~11,00~11)指定排列, 內存變量必須對齊內存16字節.目的寄存器高64位放源存儲器被指定數,目的寄存器低64位放目的寄存器被指定數. '( )'中的都是二進制數
目的寄存器: a(11) | a(10) | a(01) | a(00)
源寄存器: b(11) | b(10) | b(01) | b(00)
目的寄存器排列結果: b(00~11) | b(00~11) | a(00~11) | a(00~11)
目的寄存器壓縮結果'( )'中的值由imm8對應的兩位二進制位指定.
: ( 11 ) ( 10 ) ( 01 ) ( 00 ) ( 11 ) ( 10 ) ( 01 ) ( 00 )
XMM0 = 090a0b0c 0d0e0f11 01020304 05060708 h,XMM1 = 0aabbccdd eeff1234 22334455 66778899 h, imm8 ══> (XMM1 10) (XMM1 01) (XMM0 11) (XMM0 00)
執行shufps XMM0,XMM1,10 01 11 00 b(二進制),XMM0 = 0eeff1234 22334455 090a0b0c 05060708 h

39. shufpd
shufpd XMM,XMM/m128,imm8(0~255) imm8(
操作值) = imm8(輸入值) mod 4
把源存儲器與目的寄存器按四字劃分,imm8(立即數)4個二進制位(0~1,0^1,0~1,0~1)指定排列, 內存變量必須對齊內存16字節.目的寄存器高64位放源存儲器被指定數,目的寄存器低64位放目的寄存器被指定數.
XMM0 = 1111111122222222 3333333344444444 h
XMM1 = 5555555566666666 aaaaaaaacccccccc h,
執行shufpd XMM0,XMM1,101001 1 0 b
XMM0 = 5555555566666666 3333333344444444 h

40. pshuflw
pshuflw XMM,XMM/m128,imm8(0~255)
先把源存儲器的高64位內容送入目的寄存器的高64,然后用imm8將源存儲器的低644個字選入目的寄存器的低64,內存變量必須對齊內存16字節.
源寄存器低64: b(11) | b(10) | b(01) | b(00)
目的寄存器低64位排列結果: b(00~11) | b(00~11) | b(00~11) | b(00~11)
XMM0 = 1111111122222222 3333 4444 5555 6666 h
XMM1 = 5555555566666666 7777 8888 9999 cccc h,
執行pshuflw XMM0,XMM1,10 10 01 10 b
XMM0 = 5555555566666666 8888 8888 9999 8888 h

41. pshufhw
pshufhw XMM,XMM/m128,imm8(0~255)
先把源存儲器的低64位內容送入目的寄存器的低64,然后用imm8將源存儲器的高644個字選入目的寄存器的高64,內存變量必須對齊內存16字節.
源寄存器高64: b(11) | b(10) | b(01) | b(00)
目的寄存器高64位排列結果: b(00~11) | b(00~11) | b(00~11) | b(00~11)
XMM0 = 3333 4444 5555 6666 1111111122222222 h
XMM1 = 7777 8888 9999 cccc 5555555566666666 h,
執行pshufhw XMM0,XMM1,10 10 01 10 b
XMM0 = 8888 8888 9999 8888 5555555566666666 h

42. pshufd
pshufd XMM,XMM/m128,imm8(0~255)
將源存儲器的4個雙字由imm8指定選入目的寄存器,內存變量必須對齊內存16字節.
源寄存器: b(11) | b(10) | b(01) | b(00)
目的寄存器排列結果: b(00~11) | b(00~11) | b(00~11) | b(00~11)
XMM1 = 11111111 22222222 33333333 44444444 h,執行pshufd XMM0,XMM1,11 01 01 10b
XMM0 = 11111111 33333333 33333333 22222222 h

9 數據類型操作

43. cvtpi2ps
cvtpi2ps XMM,MM/m64
源存儲器64位兩個32位有符號(補碼)整數轉為兩個單精度浮點數,放入目的寄存器低64,64位不變.

44. cvtsi2ss
cvtsi2ss XMM,r32/m32
源存儲器132位有符號(補碼)整數轉為1個單精度浮點數,放入目的寄存器低32,96位不變.

45. cvtps2pi
cvtps2pi MM,XMM/m64
把源存儲器低64位兩個32位單精度浮點數轉為兩個32位有符號(補碼)整數,放入目的寄存器

46. cvttps2pi
cvttps2pi MM,XMM/m64
類似于cvtps2pi,截斷取整.

47. cvtss2si
cvtss2si r32,XMM/m32
把源存儲器低321個單精度浮點數轉為132位有符號(補碼)整數,放入目的寄存器.

48. cvttss2si
 cvttss2si r32,XMM/m32
類似cvtss2si,截斷取整.

49. cvtps2pd
cvtps2pd XMM,XMM/m64
把源存儲器低64位兩個單精度浮點數變成兩個雙精度浮點數,結果送入目的寄存器.

50. cvtss2sd
cvtss2sd XMM,XMM/m32
把源存儲器低321個單精度浮點數變成1個雙精度浮點數,結果送入目的寄存器的低64,64位不變.

51. cvtpd2ps
把源存儲器兩個雙精度浮點數變成兩個單精度浮點數,結果送入目的寄存器的低64,64位清零, 內存變量必須對齊內存16字節.
^特殊狀態 3.14E5 (表示負無窮大)

52. cvtsd2ss
cvtsd2ss XMM,XMM/m64
把源存儲器低641個雙精度浮點數變成1個單精度浮點數,結果送入目的寄存器的低32,96位不變.

53. cvtpd2pi
cvtpd2pi MM,XMM/m128
把源存儲器兩個雙精度浮點數變成兩個雙字有符號整數,結果送入目的寄存器,內存變量必須對齊內存16字節. 如果結果大于所能表示的范圍,那么轉化為80000000h(正數也轉為此值).

54. cvttpd2pi
cvttpd2pi MM,XMM/m128
類似于cvtpd2pi,截斷取整.

55. cvtpi2pd
cvtpi2pd XMM,MM/m64
把源存儲器兩個雙字有符號整數變成兩個雙精度浮點數,結果送入目的寄存器.

56. cvtpd2dq
cvtpd2dq XMM,XMM/m128
把源存儲器兩個雙精度浮點數變成兩個雙字有符號整數(此運算與cvtpd2pi類似但目的寄存器變為XMM), 結果送入目的寄存器的低64,64位清零,內存變量必須對齊內存16字節.

57. cvttpd2dq
cvttpd2dq XMM,XMM/m128
類似于cvtpd2dq,為截斷取整.

58. cvtdq2pd
cvtdq2pd XMM,XMM/m128
把源存儲器低64位兩個雙字有符號整數變成兩個雙精度浮點數,結果送入目的寄存器,內存變量必須對齊內存16字節.

59. cvtsd2si
cvtsd2si r32,XMM/m64
把源存儲器低641個雙精度浮點數變成1個雙字有符號整數,結果送入目的寄存器.

60. cvttsd2si
cvttsd2si r32,XMM/m64
類似于cvtsd2si,截斷取整.

61. cvtsi2sd
cvtsi2sd XMM,r32/m32
把源存儲器1個雙字有符號整數變成1個雙精度浮點數,結果送入目的寄存器的低64,64位不變.

62. cvtps2dq
cvtps2dq XMM,XMM/m128
把源存儲器4個單精度浮點數變成4個雙字有符號整數,結果送入目的寄存器,內存變量必須對齊內存16字節.

63. cvttps2dq
cvttps2dq XMM,XMM/m128
類似于cvtps2dq,截斷取整.

64. cvtdq2ps
cvtdq2ps XMM,XMM/m128
把源存儲器4個雙字有符號整數變成4個單精度浮點數,結果送入目的寄存器,內存變量必須對齊內存16字節.

9 備注

1.        MMX指令有864位寄存器(MM0~MM7),不過可惜都是借的FPU, FPU原來有880位寄存器(st(0)~st(7)),現在用在了MMX,所以用之后要加上一條EMMS指令,用以復位.

posted on 2010-08-20 17:53 大海 閱讀(7153) 評論(1)  編輯 收藏 引用 所屬分類: 匯編語言

評論

# re: sse2指令集 2011-09-06 11:04 benqiang

樓主是個好人,居然還自己翻譯,太感謝了。。。  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀久久99精品久久久久久9| 亚洲午夜久久久久久久久电影网| 久久久久国产一区二区| 欧美激情一区在线观看| 久久av一区| 国产日产欧美a一级在线| 亚洲一区免费在线观看| 亚洲国产精品一区二区www| 在线亚洲自拍| 欧美三级电影一区| 在线综合亚洲欧美在线视频| 亚洲国产综合91精品麻豆| 麻豆91精品91久久久的内涵| ●精品国产综合乱码久久久久| 久久免费国产精品| 久久久青草青青国产亚洲免观| 黄网站免费久久| 噜噜噜噜噜久久久久久91| 久久精品视频免费| 亚洲一区久久久| 国产精品一区二区三区成人| 欧美一级黄色录像| 久久精品电影| 亚洲肉体裸体xxxx137| 亚洲激情在线| 国产精品v日韩精品v欧美精品网站| 亚洲系列中文字幕| 亚洲欧美日韩一区二区三区在线观看 | 在线观看中文字幕不卡| 久久久www成人免费毛片麻豆| 午夜精品在线| 激情视频一区二区三区| 欧美大片专区| 欧美日本在线一区| 亚洲影院一区| 欧美一区二区三区免费视频| 在线日韩中文字幕| 亚洲毛片在线免费观看| 国产欧美日韩视频在线观看| 欧美插天视频在线播放| 欧美三级欧美一级| 麻豆精品一区二区av白丝在线| 欧美极品一区| 国产欧美一区二区视频| 亚洲第一福利在线观看| 欧美四级在线观看| 久久亚洲二区| 欧美日韩1区2区| 久久手机免费观看| 欧美日韩免费在线视频| 久久综合狠狠综合久久激情| 欧美激情小视频| 久久国产免费看| 欧美日本精品在线| 久久久精品tv| 欧美精品一区在线| 美女视频黄 久久| 国产精品av久久久久久麻豆网| 久久亚洲综合网| 国产精品进线69影院| 欧美不卡一区| 国产亚洲精品激情久久| 日韩视频国产视频| 1024精品一区二区三区| 午夜精品视频一区| 亚洲一区二区视频在线| 免费观看成人鲁鲁鲁鲁鲁视频| 久久不射网站| 欧美性片在线观看| 亚洲第一主播视频| 一区二区三区在线不卡| 亚洲欧美综合另类中字| 亚洲免费网址| 欧美日本在线| 91久久亚洲| 亚洲人成人99网站| 免费观看久久久4p| 男人的天堂亚洲| 国产亚洲一区精品| 亚洲欧美精品在线| 亚洲欧美一区二区三区久久| 欧美日韩精品高清| 日韩一本二本av| 亚洲午夜免费视频| 欧美日一区二区三区在线观看国产免 | 国产欧美日韩综合一区在线观看| 亚洲国产欧美在线| 一区二区三区亚洲| 久久久青草婷婷精品综合日韩 | 欧美一二区视频| 午夜精品久久久久久久久久久| 欧美日韩在线播放三区四区| 亚洲国产综合视频在线观看| 亚洲欧洲日夜超级视频| 另类专区欧美制服同性| 欧美成人免费在线观看| 亚洲国产精品一区二区www| 久久精品2019中文字幕| 米奇777在线欧美播放| 亚洲高清成人| 欧美高清视频一区| 亚洲精品乱码久久久久久久久| 亚洲精品久久久久中文字幕欢迎你| 欧美电影在线免费观看网站| 亚洲精品综合精品自拍| 午夜日韩电影| 精品成人在线观看| 欧美黑人多人双交| 99热这里只有成人精品国产| 亚洲在线中文字幕| 国产在线精品一区二区中文| 久久综合中文色婷婷| 亚洲国产日本| 亚洲欧美精品suv| 国产一区二区三区四区老人| 久久综合999| 欧美激情aaaa| 亚洲欧美国产高清va在线播| 国产亚洲网站| 蜜桃av综合| 亚洲午夜激情网站| 久久综合影视| 夜夜嗨网站十八久久| 国产精品激情电影| 久久久av网站| 夜夜精品视频一区二区| 久久久久久久久久久久久9999| 91久久精品一区| 国产精品视频第一区| 久热爱精品视频线路一| 一本色道久久综合狠狠躁篇的优点 | 欧美日韩亚洲国产精品| 午夜伦理片一区| 欧美激情一区二区在线| 欧美影院视频| 亚洲看片免费| 国产视频久久久久| 欧美日韩一本到| 久久免费黄色| 亚洲影视在线播放| 最新国产乱人伦偷精品免费网站| 欧美一区二区三区视频在线观看| 亚洲国产女人aaa毛片在线| 国产伦一区二区三区色一情| 欧美精品色网| 久久中文久久字幕| 欧美一区二区三区免费视频| 日韩视频免费在线| 亚洲日本va午夜在线电影| 亚洲尤物在线视频观看| 亚洲国产日韩精品| 久久亚洲一区二区| 性欧美video另类hd性玩具| 日韩系列欧美系列| 在线视频国产日韩| 国产综合久久久久久| 欧美视频免费在线观看| 欧美精品在线看| 免费高清在线一区| 久久深夜福利免费观看| 性欧美超级视频| 亚洲一二三区在线| 一本一本久久a久久精品综合麻豆| 欧美福利电影在线观看| 久久网站热最新地址| 久久精品视频在线观看| 久久riav二区三区| 欧美制服第一页| 欧美一区二区视频在线| 性欧美1819性猛交| 久久国产毛片| 久久免费视频在线| 久久久精品五月天| 久久久久久久999精品视频| 久久人人爽人人爽爽久久| 久久久水蜜桃| 免费在线观看精品| 欧美二区在线观看| 亚洲欧洲一区二区天堂久久| 91久久国产综合久久| 亚洲精品黄色| 在线视频欧美日韩| 亚洲欧美一区在线| 欧美一区中文字幕| 久久婷婷影院| 欧美激情视频免费观看| 欧美另类69精品久久久久9999| 欧美日韩国产经典色站一区二区三区| 欧美久久成人| 国产精品久久福利| 国产自产2019最新不卡| 亚洲国产美女| 亚洲视频在线免费观看| 午夜在线不卡| 女人色偷偷aa久久天堂| 91久久久久久久久久久久久| 亚洲一区二区三区在线观看视频| 欧美一级免费视频| 欧美成年人视频网站| 国产精品videossex久久发布|