第七节 1、JCC
<h3>记住知识点:</h3>
<h4>1、可以改变EIP的指令:JMP、CALL、RET、JCC的所有指令</h4>
<h4>2、JCC指令的跳只与标志寄存器有关</h4>
<hr />
<hr />
<h3>A(above):高于 B(below):低于 E(equal):等于 N(not):不 G(greater):最大的 L(less):更少的</h3>
<h3>标志位的简写:</h3>
<h3>C:CF标志位 Z:OF标志位 S:SF位(符号位) P:PF标志位 O:OF标志位</h3>
<h3>Jump If Parity Even:按偶校验转移</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">JCC指令</th>
<th style="text-align: left;">中文含义</th>
<th style="text-align: left;">英文原意</th>
<th style="text-align: left;">检查符号位</th>
<th style="text-align: left;">典型C应用</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">JZ/JE</td>
<td style="text-align: left;">若为0则跳转;若相等则跳转</td>
<td style="text-align: left;">jump if zero;jump if equal</td>
<td style="text-align: left;">ZF=1</td>
<td style="text-align: left;">if (i == j);if (i == 0);</td>
</tr>
<tr>
<td style="text-align: left;">JNZ/JNE</td>
<td style="text-align: left;">若不为0则跳转;若不相等则跳转</td>
<td style="text-align: left;">jump if not zero;jump if not equal</td>
<td style="text-align: left;">ZF=0</td>
<td style="text-align: left;">if (i != j);if (i != 0);</td>
</tr>
<tr>
<td style="text-align: left;">JS</td>
<td style="text-align: left;">若为负则跳转</td>
<td style="text-align: left;">jump if sign</td>
<td style="text-align: left;">SF=1</td>
<td style="text-align: left;">if (i < 0);</td>
</tr>
<tr>
<td style="text-align: left;">JNS</td>
<td style="text-align: left;">若为正则跳转</td>
<td style="text-align: left;">jump if not sign</td>
<td style="text-align: left;">SF=0</td>
<td style="text-align: left;">if (i > 0);</td>
</tr>
<tr>
<td style="text-align: left;">JP/JPE</td>
<td style="text-align: left;">若1出现次数为偶数则跳转</td>
<td style="text-align: left;">jump if Parity (Even)</td>
<td style="text-align: left;">PF=1</td>
<td style="text-align: left;">(null)</td>
</tr>
<tr>
<td style="text-align: left;">JNP/JPO</td>
<td style="text-align: left;">若1出现次数为奇数则跳转</td>
<td style="text-align: left;">jump if not parity (odd)</td>
<td style="text-align: left;">PF=0</td>
<td style="text-align: left;">(null)</td>
</tr>
<tr>
<td style="text-align: left;">JO</td>
<td style="text-align: left;">若溢出则跳转</td>
<td style="text-align: left;">jump if overflow</td>
<td style="text-align: left;">OF=1</td>
<td style="text-align: left;">(null)</td>
</tr>
<tr>
<td style="text-align: left;">JNO</td>
<td style="text-align: left;">若无溢出则跳转</td>
<td style="text-align: left;">jump if not overflow</td>
<td style="text-align: left;">OF=0</td>
<td style="text-align: left;">(null)</td>
</tr>
<tr>
<td style="text-align: left;">JC/JB/JNAE</td>
<td style="text-align: left;">若进位则跳转;若低于则跳转;若不高于等于则跳转</td>
<td style="text-align: left;">jump if carry;jump if below;jump if not above equal</td>
<td style="text-align: left;">CF=1</td>
<td style="text-align: left;">if (i < j);</td>
</tr>
<tr>
<td style="text-align: left;">JNC/JNB/JAE</td>
<td style="text-align: left;">若无进位则跳转;若不低于则跳转;若高于等于则跳转;</td>
<td style="text-align: left;">jump if not carry;jump if not below;jump if above equal</td>
<td style="text-align: left;">CF=0</td>
<td style="text-align: left;">if (i >= j);</td>
</tr>
<tr>
<td style="text-align: left;">JBE/JNA</td>
<td style="text-align: left;">若低于等于则跳转;若不高于则跳转</td>
<td style="text-align: left;">jump if below equal;jump if not above</td>
<td style="text-align: left;">ZF=1或CF=1</td>
<td style="text-align: left;">if (i <= j);</td>
</tr>
<tr>
<td style="text-align: left;">JNBE/JA</td>
<td style="text-align: left;">若不低于等于则跳转;若高于则跳转</td>
<td style="text-align: left;">jump if not below equal;jump if above</td>
<td style="text-align: left;">ZF=0或CF=0</td>
<td style="text-align: left;">if (i > j);</td>
</tr>
<tr>
<td style="text-align: left;">JL/JNGE</td>
<td style="text-align: left;">若小于则跳转;若不大于等于则跳转</td>
<td style="text-align: left;">jump if less;jump if not greater equal</td>
<td style="text-align: left;">SF != OF</td>
<td style="text-align: left;">if (si < sj);</td>
</tr>
<tr>
<td style="text-align: left;">JNL/JGE</td>
<td style="text-align: left;">若不小于则跳转;若大于等于则跳转;</td>
<td style="text-align: left;">jump if not less;jump if greater equal</td>
<td style="text-align: left;">SF = OF</td>
<td style="text-align: left;">if (si >= sj);</td>
</tr>
<tr>
<td style="text-align: left;">JLE/JNG</td>
<td style="text-align: left;">若小于等于则跳转;若不大于则跳转</td>
<td style="text-align: left;">jump if less equal;jump if not greater</td>
<td style="text-align: left;">ZF != OF 或 ZF=1</td>
<td style="text-align: left;">if (si <= sj);</td>
</tr>
<tr>
<td style="text-align: left;">JNLE/JG</td>
<td style="text-align: left;">若不小于等于则跳转;若大于则跳转</td>
<td style="text-align: left;">jump if not less equal;jump if greater</td>
<td style="text-align: left;">SF=0F 且 ZF=0</td>
<td style="text-align: left;">if(si>sj)</td>
</tr>
</tbody>
</table>