JS、JNS、JP(JPE)、JNP(JPO)指令详解、从原理上解释

  • JS
    格式:
js 地址

当执行到JS指令时,如果标志位SF=1,则跳转到指定的地址,如果SF=0,不跳转

比如:

cmp eax,ecx
js 0040100c

此时eax=0,ecx=1,执行完cmp命令,符号标志位SF=1,执行到JS时,跳转到0040100c处执行

  • JNS
    格式:
jns 地址

当执行到JNS指令时,如果标志位SF=0,则跳转到指定的地址,如果SF=1,不跳转,和JS刚好相反

  • JP、JPE
    JP和JPE是一个意思,只不过是写法不同,当执行到JPE(JP)命令时,如果此时标志位PF=1,则跳转到指定的地址,如果PF=0,不跳转
cmp eax,ecx
jpe 0040100c

此时eax=0x20,ecx=0x17,执行完cmp,结果为0x3,转换为二进制为11,1的个数为偶数个,所以PF=1,跳转到0040100c处执行

  • JNP、JPO
    JNP、JPO也是一个意思,不同写法而已,当执行到JNP(JPO)命令时,如果此时标志位PF=0,则跳转到指定的地址,如果PF=1,不跳转
cmp eax,ecx
jpe 0040100c

此时eax=0x20,ecx=0x18,执行完cmp,结果为0x32,转换为二进制为01,1的个数为奇数个,所以PF=0,跳转到0040100c处执行

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值