计算机数据表示与操作:cmp指令、条件跳转及位操作详解
1. cmp指令与条件跳转
1.1 cmp指令概述
cmp(比较)指令是条件跳转前常用的指令。它的语法和sub指令相同,会将第二个操作数从第一个操作数中减去,并根据减法结果设置条件码标志,但不会将差值存回第一个操作数。其主要目的就是基于减法结果设置条件码标志。
1.2 比较后的常见问题
执行 cmp left_operand, right_operand 指令后,通常会有以下疑问:
- 左操作数是否等于右操作数?
- 左操作数是否不等于右操作数?
- 左操作数是否小于右操作数?
- 左操作数是否小于或等于右操作数?
- 左操作数是否大于右操作数?
- 左操作数是否大于或等于右操作数?
1.3 x86 - 64 CPU的条件跳转指令
x86 - 64 CPU提供了一组条件跳转指令,用于测试比较条件,具体如下表所示:
| Instruction | Flags tested | Explanation |
| — | — | — |
| je label | ZF == 1 | 相等则跳转。若左操作数等于右操作数,则将控制转移到目标标签。它是jz的同义词,因为两操作数相等时,减法结果为0,零标志会被设置。 |
| jne label | ZF == 0 | 不相等则跳转。若左操作数不等于右操作数,则将控制转移到目标标签。它是jnz的同义词,因为两操作数不相等时,减法结果非零,零标志会被清除。 |
| ja label |
cmp指令、条件跳转与位操作详解
超级会员免费看
订阅专栏 解锁全文
22

被折叠的 条评论
为什么被折叠?



