相同的汇编不同的opcode
EB如果后面接的数大于80,则是往上跳(大于80为负数)
EB如果后面接的数小于80,则是往下跳
JMP
用于执行四种类型的不同跳转
近跳:跳转到当前代码段(CS 寄存器当前指向的段)内的指令,有时称为段内跳转。
短跳:跳转范围限制为距当前 EIP 值 -128 到 +127 的近跳转。
远跳:跨段跳转(保护模式)
任务切换: 跳转到另一个任务中的指令。
怎么判断两个数的大小呢? ^表示异或
OF^SF==0 左>=右
OF^SF==1 左 <右
判断ZF
JLE JG
JLE/JNG:SF xor OF or ZF =1
JNLE/JG:SF xor OF or ZF =0
不判断ZF
JGE JL
JL/JNGE:SF xor OF =1 (SF!=OF)
JNL/JGE:SF xor OF =0 (SF=OF)
case
case值:不超过0x144 有规律的不连续?
case值:超过0x144有规律的不连续?
case值:值很多且不连续
三种循环跳转
汇编中分别是不同的三种跳转,但是release版本都会优化成do while