WSADlength[Z][condition] dest, op1, op2
其中:
length | 所操作的數據長度,可以由以下字元之一指定: B -- 8 位(位元組)SIMD 欄位 H -- 16 位(半字)SIMD 欄位 |
Z | 可選。如果字元 Z 放入指令助記符: 在累加之前“目標”將置零 |
condition | 可選。16 個條件之一。請參閱條件執行。 |
dest | 目標,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op1 | 第一個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 |
op2 | 第二個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器 |
確定 op1 與 op2 相應向量的絕對差值,然後將它們累加在一起。隨後將此累加結果加到目標暫存器 dest 中任何現有的值上。
執行加法之前,可以選擇將目標暫存器 dest 置零。
此操作可以在 8 位或 16 位無符號數據向量上執行。
指令中指定的任何條件必須與條件程式碼狀態匹配,否則不執行指令。
31
|
30
|
29
|
28
|
27
|
26
|
25
|
24
|
23
|
22
|
21
|
20
|
19
|
18
|
17
|
16
|
15
|
14
|
13
|
12
|
11
|
10
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cond
|
1110
|
0h0z
|
op1
|
dest
|
0001
|
001
|
0
|
op2
|
限定符
|
欄位
|
值
|
---|---|---|
B
|
h
|
0
|
H
|
h
|
1
|
Z
|
z
|
1
|
無 Z
|
z
|
0
|
wRd[word 1] = 0;
if (B specified) then
dest[word 0] = (Z Specified) ?0: dest[word 0]
+ abs(op1[byte 7] - op2[byte 7])
+ abs(op1[byte 6] - op2[byte 6])
+ abs(op1[byte 5] - op2[byte 5])
+ abs(op1[byte 4] - op2[byte 4])
+ abs(op1[byte 3] - op2[byte 3])
+ abs(op1[byte 2] - op2[byte 2])
+ abs(op1[byte 1] - op2[byte 1])
+ abs(op1[byte 0] - op2[byte 0])
else if (H specified) then
dest[word 0] = Z Specified) ?0: dest[word 0]
+ abs(op1[half 3] - op2[half 3])
+ abs(op1[half 2] - op2[half 2])
+ abs(op1[half 1] - op2[half 1])
+ abs(op1[half 0] - op2[half 0])