操作碼 |
指令 |
說明 |
A8 ib |
TEST AL,imm8 |
imm8 同 AL 進行“與”運算;根據結果設定 SF、ZF、PF |
A9 iw |
TEST AX,imm16 |
imm16 同 AX 進行“與”運算;根據結果設定 SF、ZF、PF |
A9 id |
TEST EAX,imm32 |
imm32 同 EAX 進行“與”運算;根據結果設定 SF、ZF、PF |
F6 /0 ib |
TEST r/m8,imm8 |
imm8 同 r/m8 進行“與”運算;根據結果設定 SF、ZF、PF |
F7 /0 iw |
TEST r/m16,imm16 |
imm16 同 r/m16 進行“與”運算;根據結果設定 SF、ZF、PF |
F7 /0 id |
TEST r/m32,imm32 |
將 imm32 和 r/m32 相“與”;根據結果設定 SF、ZF、PF |
84 /r |
TEST r/m8,r8 |
將 r8 和 r/m8 相“與”;根據結果設定 SF、ZF、PF |
85 /r |
TEST r/m16,r16 |
r16 同 r/m16 進行“與”運算;根據結果設定 SF、ZF、PF |
85 /r |
TEST r/m32,r32 |
r32 同 r/m32 進行“與”運算;根據結果設定 SF、ZF、PF |
計算第一個運算元(源運算元 1)與第二個運算元(源運算元 2)的逐位邏輯“與”,並根據結果設定 SF、ZF 及 PF 狀態標誌。然後丟棄結果。
TEMP SRC1 AND SRC2;
SF MSB(TEMP);
IF TEMP 0
THEN ZF 1;
ELSE ZF 0;
FI:
PF BitwiseXNOR(TEMP[0:7]);
CF 0;
OF 0;
(*AF is Undefined*)
OF 與 CF 標誌清除為 0。SF、ZF 及 PF 標誌根據結果設定(請參閱上面的“操作”部分)。AF 標誌的狀態未定義。
#GP(0) - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS 或 GS 暫存器包含空的段選擇器。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。
#AC(0) - 如果啟用對齊檢查並在目前特權級別為 3 時進行未對齊的記憶體引用。
#GP - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS - 如果記憶體運算元有效地址超出 SS 段限制。
#GP(0) - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。
#AC(0) - 如果在啟用對齊檢查的情況下進行未對齊的記憶體引用。