【汇编】JCC
概述: JCC 汇编指令
0x01 指令全英
| 指令 | FALG | |
|---|---|---|
| A | above | ZF=0 OR CF=0 |
| B | blow | CF=1 |
| E | equal | ZF=1 |
| N | not | |
| C | carry | CF=1 |
| G | great | SF==OF && ZF=0 |
| L | less | SF!=OF |
| O | overflow | OF=1 |
| P | parity even 奇偶 | PF=1 |
| S | sign为负 | SF=1 |
| Z | zero为0 | ZF=1 |
0x02 基于特定标志位值的跳转
| 指令 | 说明 |
|---|---|
| JC | 进位跳转(进位标志位置 1) |
| JNC | 无进位跳转(进位标志位清零) |
| JZ/JE | 结果为零则跳转(相等时跳转) |
| JNZ | 结果不为零则跳转(不相等时跳转) |
| JS | 结果为负则跳转 |
| JNS | 结果为非负则跳转 |
| JP | 结果中1的个数为偶数则跳转 |
| JNP | 结果中1的个数为奇数则跳转 |
| JO | 结果溢出了则跳转 |
| JNO | 结果没有溢出则跳转 |
0x03 JCC满足条件时跳转
| 操作码 | 指令 | 说明 |
|---|---|---|
| 77 cb | JA rel8 | 高于(CF=0 且 ZF=0)时短跳转 |
| 73 cb | JAE rel8 | 高于或等于 (CF=0) 时短跳转 |
| 72 cb | JB rel8 | 低于 (CF=1) 时短跳转 |
| 76 cb | JBE rel8 | 低于或等于(CF=1 或 ZF=1)时短跳转 |
| 72 cb | JC rel8 | 进位 (CF=1) 时短跳转 |
| E3 cb | JCXZ rel8 | CX 寄存器为 0 时短跳转 |
| E3 cb | JECXZ rel8 | ECX 寄存器为 0 时短跳转 |
| 74 cb | JE rel8 | 等于 (ZF=1) 时短跳转 |
| 7F cb | JG rel8 | 大于(ZF=0 且 SF=OF)时短跳转 |
| 7D cb | JGE rel8 | 大于或等于 (SF=OF) 时短跳转 |
| 7C cb | JL rel8 | 小于 (SF<>OF) 时短跳转 |
| 7E cb | JLE rel8 | 小于或等于(ZF=1 或 SF<>OF)时短跳转 |
| 76 cb | JNA rel8 | 不高于(CF=1 或 ZF=1)时短跳转 |
| 72 cb | JNAE rel8 | 不高于或等于 (CF=1) 时短跳转 |
| 73 cb | JNB rel8 | 不低于 (CF=0) 时短跳转 |
| 77 cb | JNBE rel8 | 不低于或等于(CF=0 或 ZF=0)时短跳转 |
| 73 cb | JNC rel8 | 无进位 (CF=0) 时短跳转 |
| 75 cb | JNE rel8 | 不相等 (ZF=0) 时短跳转 |
| 7E cb | JNG rel8 | 不大于(ZF=1 或 SF<>OF)时短跳转 |
| 7C cb | JNGE rel8 | 不大于或等于 (SF<>OF) 时短跳转 |
| 7D cb | JNL rel8 | 不小于 (SF=OF) 时短跳转 |
| 7F cb | JNLE rel8 | 不小于或等于(ZF=0 且 SF=OF)时短跳转 |
| 71 cb | JNO rel8 | 不上溢 (OF=0) 时短跳转 |
| 7B cb | JNP rel8 | 奇校验 (PF=0) 时短跳转 |
| 79 cb | JNS rel8 | 正数时 (SF=0) 短跳转 |
| 75 cb | JNZ rel8 | 不为零 (ZF=0) 时短跳转 |
| 70 cb | JO rel8 | 上溢 (OF=1) 时短跳转 |
| 7A cb | JP rel8 | 偶校验 (PF=1) 时短跳转 |
| 7A cb | JPE rel8 | 偶校验 (PF=1) 时短跳转 |
| 7B cb | JPO rel8 | 奇校验 (PF=0) 时短跳转 |
| 78 cb | JS rel8 | 负数 (SF=1) 时短跳转 |
| 74 cb | JZ rel8 | 为零 (ZF=1) 时短跳转 |
| 0F 87 cw/cd | JA rel16/32 | 高于(CF=0 且 ZF=0)时近跳转 |
| 0F 83 cw/cd | JAE rel16/32 | 高于或等于 (CF=0) 时近跳转 |
| 0F 82 cw/cd | JB rel16/32 | 低于 (CF=1) 时近跳转 |
| 0F 86 cw/cd | JBE rel16/32 | 低于或等于(CF=1 或 ZF=1)时近跳转 |
| 0F 82 cw/cd | JC rel16/32 | 进位 (CF=1) 时近跳转 |
| 0F 84 cw/cd | JE rel16/32 | 相等 (ZF=1) 时近跳转 |
| 0F 84 cw/cd | JZ rel16/32 | 为 0 (ZF=1) 时近跳转 |
| 0F 8F cw/cd | JG rel16/32 | 大于(ZF=0 且 SF=OF)时近跳转 |
| 操作码 | 指令 | 说明 |
|---|---|---|
| 0F 8D cw/cd | JGE rel16/32 | 大于或等于 (SF=OF) 时近跳转 |
| 0F 8C cw/cd | JL rel16/32 | 小于 (SF<>OF) 时近跳转 |
| 0F 8E cw/cd | JLE rel16/32 | 小于或等于(ZF=1 或 SF<>OF)时近跳转 |
| 0F 86 cw/cd | JNA rel16/32 | 不高于(CF=1 或 ZF=1)时近跳转 |
| 0F 82 cw/cd | JNAE rel16/32 | 不高于或等于 (CF=1) 时近跳转 |
| 0F 83 cw/cd | JNB rel16/32 | 不低于 (CF=0) 时近跳转 |
| 0F 87 cw/cd | JNBE rel16/32 | 不低于或等于(CF=0 或 ZF=0)时近跳转 |
| 0F 83 cw/cd | JNC rel16/32 | 无进位 (CF=0) 时近跳转 |
| 0F 85 cw/cd | JNE rel16/32 | 不相等 (ZF=0) 时近跳转 |
| 0F 8E cw/cd | JNG rel16/32 | 不大于(ZF=1 或 SF<>OF)时近跳转 |
| 0F 8C cw/cd | JNGE rel16/32 | 不大于或等于 (SF<>OF) 时近跳转 |
| 0F 8D cw/cd | JNL rel16/32 | 不小于 (SF=OF) 时近跳转 |
| 0F 8F cw/cd | JNLE rel16/32 | 不小于或等于(ZF=0 且 SF=OF)时近跳转 |
| 0F 81 cw/cd | JNO rel16/32 | 不上溢 (OF=0) 时近跳转 |
| 0F 8B cw/cd | JNP rel16/32 | 奇校验 (PF=0) 时近跳转 |
| 0F 89 cw/cd | JNS rel16/32 | 正数 (SF=0) 时近跳转 |
| 0F 85 cw/cd | JNZ rel16/32 | 不为零 (ZF=0) 时近跳转 |
| 0F 80 cw/cd | JO rel16/32 | 上溢 (OF=1) 时近跳转 |
| 0F 8A cw/cd | JP rel16/32 | 偶校验 (PF=1) 时近跳转 |
| 0F 8A cw/cd | JPE rel16/32 | 偶校验 (PF=1) 时近跳转 |
| 0F 8B cw/cd | JPO rel16/32 | 奇校验 (PF=0) 时近跳转 |
| 0F 88 cw/cd | JS rel16/32 | 负数 (SF=1) 时近跳转 |
| 0F 84 cw/cd | JZ rel16/32 | 为 0 (ZF=1) 时近跳转 |
【汇编】JCC
https://hodlyounger.github.io/2023/11/20/B_Code/汇编/【汇编】JCC/