1、常用的CPU标志位
ZF Zero Flag 零标志,目的操作数为0值时设置
SF Sign Flag 符号标志,目的操作数的最高位
CF Carry Flag 进位标志,最高位向更高位进位或借位
OF Overflow Flag 溢出标志,最高两位的进位或借位值异或
PF Parity Flag 奇偶标志,目的操作数最低字节奇偶性为偶
2、逻辑运算指令
AND 指令常用 0 来清除对应位,用1来保留对应位
OR 指令常用 1 来设置对应位,用0来保留对应位
XOR 具有可逆特性,(A XOR B) XOR B == A , A XOR (A XOR B) == B
NOT 所有数据位取反
TEST 虚拟 AND 指令
CMP 虚拟 SUB 指令(一般要结合基于比较的跳转指令使用)
3.跳转指令
3.1、基于CPU标志的跳转指令
JZ 零标志1
JNZ 零标志0
JC 进位标志1
JNC 进位标志0
JO 溢出标志1
JNO 溢出标志0
JS 符号标志1
JNS 符号标志0
JP 奇偶标志1
JNP 奇偶标志0
3.2、基于CMP指令的跳转指令
3.2.1、无符号数比较跳转指令
J 跳转 N 不 A 大于
B 小于
E 等于
3.2.2、有符号数比较跳转指令
J 跳转 N 不 G 大于
L 小于
E 等于
3.3、基于计数器是否为0的跳转指令
JCXZ CX==0 则跳转
JECXZ ECX==0 则跳转