操作碼 |
指令 |
說明 |
0F 97 |
SETA r/m8 |
高於(CF=0 且 ZF=0)時設定位元組 |
0F 93 |
SETAE r/m8 |
高於或等於 (CF=0)時設定位元組 |
0F 92 |
SETB r/m8 |
低於 (CF=1) 時設定位元組 |
0F 96 |
SETBE r/m8 |
低於或等於(CF=1 或 ZF=1)時設定位元組 |
0F 92 |
SETC r/m8 |
進位 (CF=1) 時設定位元組 |
0F 94 |
SETE r/m8 |
等於 (ZF=1) 時設定位元組 |
0F 9F |
SETG r/m8 |
大於(ZF=0 且 SF=OF)時設定位元組 |
0F 9D |
SETGE r/m8 |
大於或等於 (SF=OF) 時設定位元組 |
0F 9C |
SETL r/m8 |
小於 (SF<>OF) 時設定位元組 |
0F 9E |
SETLE r/m8 |
小於或等於(ZF=1 或 SF<>OF)時設定位元組 |
0F 96 |
SETNA r/m8 |
不高於(CF=1 或 ZF=1)時設定位元組 |
0F 92 |
SETNAE r/m8 |
不高於或等於 (CF=1) 時設定位元組 |
0F 93 |
SETNB r/m8 |
不低於 (CF=0) 時設定位元組 |
0F 97 |
SETNBE r/m8 |
不低於或等於(CF=0 且 ZF=0)時設定位元組 |
0F 93 |
SETNC r/m8 |
無進位 (CF=0) 時設定位元組 |
0F 95 |
SETNE r/m8 |
等於 (ZF=0) 時設定位元組 |
0F 9E |
SETNG r/m8 |
不大於(ZF=1 或 SF<>OF)時設定位元組 |
0F 9C |
SETNGE r/m8 |
不大於或等於 (SF<>OF) 時設定位元組 |
0F 9D |
SETNL r/m8 |
不小於 (SF=OF) 時設定位元組 |
0F 9F |
SETNLE r/m8 |
不小於或等於(ZF=0 且 SF=OF)時設定位元組 |
0F 91 |
SETNO r/m8 |
不上溢 (OF=0) 時設定位元組 |
0F 9B |
SETNP r/m8 |
奇校驗 (PF=0) 時設定位元組 |
0F 99 |
SETNS r/m8 |
正數 (SF=0) 時設定位元組 |
0F 95 |
SETNZ r/m8 |
不為零 (ZF=0) 時設定位元組 |
0F 90 |
SETO r/m8 |
上溢 (OF=1) 時設定位元組 |
0F 9A |
SETP r/m8 |
偶校驗 (PF=1) 時設定位元組 |
0F 9A |
SETPE r/m8 |
偶校驗 (PF=1) 時設定位元組 |
0F 9B |
SETPO r/m8 |
奇校驗 (PF=0) 時設定位元組 |
0F 98 |
SETS r/m8 |
負數 (SF=1) 時設定位元組 |
0F 94 |
SETZ r/m8 |
為零 (ZF=1) 時設定位元組 |
根據 EFLAGS 暫存器中狀態標誌(CF、SF、OF、ZF 及 PF)的設定,將目標運算元設定為 0 或 1。目標運算元指向位元組暫存器或記憶體中的位元組。條件程式碼後綴 (cc) 表示要測試的條件。
術語“高於”與“低於”與 CF 標誌關聯,它們指兩個無符號整數值之間的關係。術語“大於”與“小於”與 SF 與 OF 標誌關聯,它們指兩個有符號整數值之間的關係。
許多 SETcc 指令操作碼都有替代助記符。例如,SETG(大於時設定位元組)與 SETNLE(小於或等於時設定位元組)具有相同的操作碼,並且測試的條件也相同:ZF 等於 0 且 SF 等於 OF。提供這些替代助記符是爲了使程式碼更容易理解。在“IA-32 英特爾(R) 體系結構軟件開發人員手冊”第 1 卷附錄 B“EFLAGS 條件程式碼”中,顯示各種測試條件的替代助記符。
某些語言將邏輯一表示成所有的位都設定為 1 的整數。要獲取這種表示法,可以選擇 SETcc 指令的相反邏輯條件,然後將結果遞減。例如,要測試上溢,可以使用 SETNO 指令,然後將結果遞減。
IF condition
THEN DEST 1
ELSE DEST 0;
FI;
無。
#GP(0) - 如果目標位於不可寫的段。如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。如果 DS、ES、FS 或 GS 暫存器包含空的段選擇器。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。
#GP - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS - 如果記憶體運算元有效地址超出 SS 段限制。
#GP(0) - 如果記憶體運算元有效地址超出 CS、DS、ES、FS 或 GS 段限制。
#SS(0) - 如果記憶體運算元有效地址超出 SS 段限制。
#PF(錯誤程式碼) - 如果發生頁錯誤。