跳转指令 和标志位

JZ/JE A-B=0 则AB相等 则ZF标志位等于1 (ZF=1)就跳转到指定地址 ZF:零号标志位

JNE/JNZ A-B!=0 则AB不相等 则ZF标志位等于0 (ZF=0)就跳转到指定地址

JL A-B<0 则A小于B 则为负数 SF(符号标志位)=1 (SF=1)就跳转到指定地址
JNGE A-B<=0 则A小于等B 则为负数||0 (SF或ZF=1) 则跳转

JNG A-B<=0 则A小于等B 则为负数或0 (ZF=1||SF!==OF) 则跳转
JLE A-B<=0 则A小于等于B 则为负或0 (zF=1||SF!==OF) 则跳转

JG A-B>0 则A大于B (ZF=0&&SFOF) 则跳转
JNLE A-B>0 则A大于B (ZF=0&&SF
OF) 则跳转

JGE/JNL A-B>0 则A大于B (SF!=OF) 则跳转

程序状态字寄存器PSW

(1)CF进位标志位
当执行一个加法(减法)运算时,最高位产生进位(或借位)时,CF=1,否则为0
(2)ZF零标志位
若当前的运算结果为零,则ZF为1,否则为0

(3)SF符号标志位
该标志位于运算结果的最高位相同。即运算结果为负,则SF为1否则为0

(4)OF溢出标志位
若运算结果超出机器能够表示的范围称为溢出,此时OF为1,否则为0

  :判断是否溢出的方法:
      进行二进制运算时,最高位的进位与次高位的进位值进行异或运算



   若运算结果为1则表示溢出OF=1,否则OF=0

(5)PE奇偶标识符
当运算结果的最低16位中含1的个数为偶数则PE=1否则PF=0

(6)AF辅助进位标志
一个加法(减法)运算结果的低4位向高4位有进位(或借位)时则AF=1,否则AF=0

(7)TF跟踪标志
该标志位为方便程序调试而设置的.若TF=1,CPU出于单步工作方式,
即在每条指令执行结束后,产生中断

(8)IF中断标志位
该标志位用来控制CPU是否响应可屏蔽中断。若IF=1则运行中断,否则禁止中断

(9)DF方向标志
该标志位用来控制串处理指令处理方向。若DF=1则串处理过程中自动递减,否则自动
递增

9.无符号大于转移指令 JA/JNBE

JA: 高于 时跳转 即>时跳转
JNBE: 不低于等于 时跳转 即<=时不跳转

JA与JG区别
JG是带符号数比较 >
JA是无符号数比较 >
CE=0 && ZF=0 则跳转

10.无符号大于等于转移指令JNB/JAE/JNC

JNB:不低于 时跳转即 >=时不跳转
JAE:高于等于 时跳转即 <时不跳转

JNC: 没有进位时跳转

11.无符号小于转移指令JB JNAE JC
JB: 低于 时跳转 即<时跳转
JNAE: 高于等于 时不跳转 即>=时不跳转

12.无符号大于转移指令JBE JNA
JBE:低于等于 时跳转 即<=时跳转
JNA: 高于 时不跳转 即>=时不跳转

猜你喜欢

转载自blog.csdn.net/ADADQDQQ/article/details/108427446
今日推荐