吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4703|回复: 51
收起左侧

[分享] C语言基础第四课:JCC

  [复制链接]
niucaidi 发表于 2021-7-11 02:04

JCC

该部分内容围绕修改EIP展开

  • JMP的唯一作用就是修改EIP,虽然其名称叫做无条件跳转指令,但是JMP并不参与跳转,只会单纯地修改EIP,跳转操作乃是是cpu读取了EIP的值后自动进行
  • Callret的作用也都是修改EIP,并且有Call必然就会有ret,因为在执行Call的同时会将下一条返回地址压入当前栈顶,当Call中的内容执行完后通过ret返回。其返回地址的计算方法涉及硬编码知识

该部分内容围绕几个常用汇编指令展开

  • Cmp指令格式:CMP R/M,R/M/IMM   (注:两边不能同时为内存)

    • CMP会比较两个操作时,实质乃是减法运算,相当于sub指令,但是相减的结果并不保存到第一个操作数中,比如在Cmp EAX,ECX运算中,实质是用EAX的值减去ECX的值
    • 倘若两者相等,那么运算结果为0,此时ZF零标志寄存器被置为1
    • 倘若EAX小于ECX,那么此时ZF零标志位寄存器0SF符号位标志寄存器被置为1
    • 倘若EAX大于ECX,那么ZF和SF两个标志寄存器都为0
  • TEST指令格式:TEST R/M,R/M/IMM

    • 该指令在一定程度上和CMP指令是类似的,两个数值进行与运算(and),结果不保存,但会改变相应标志位ZF
    • 常见用法:用TEST指令,可以判断某个寄存器是否为0,例如:TEST EAX,EAX,若EAX0,那么ZF将会被置为1

  • JE、JZ的跳转条件:ZF1时跳转(相等时跳转)

  • JNE、JNZ的跳转条件:ZF0时跳转(不相等时跳转)


  • JS的跳转条件:SF1时跳转(结果为负时跳转)

  • JNS的跳转条件:SF0时跳转(结果为非负时跳转)


  • JP,JPE的跳转条件:PF1时跳转(结果中的1为偶数时跳转)

  • JNP,JPO的跳转条件:PF0时跳转(结果中的1为偶数时跳转)


  • JO的跳转条件:OF1则跳转(结果溢出了就跳转)

  • JNO的跳转条件:OF0则跳转(结果没有溢出则跳转)


  • JB、JNAE的跳转条件:CF1则跳转(小于则跳转,注:特指无符号数)

  • JNB、JAE的跳转条件:CF0则跳转(大于等于则跳转,注:特指无符号数)


  • JBE、JNA的跳转条件:CF=1 or ZF=1则跳转(小于等于则跳转,注:特指无符号数)

  • JNBE、JA的跳转条件:CF=0 and ZF=0则跳转(大于则跳转,注:特指无符号数)


  • JL、JNGE的跳转条件:SF ≠ OF则跳转(小于则跳转,注:特指有符号数)

  • JNL、JGE的跳转条件:SF = OF则跳转(大于等于则跳转,注:特指有符号数)


  • JLE、JNG的跳转条件:ZF=1 or SF≠OF则跳转(小于等于则跳转,注:特指有符号数)

  • JNLE、JG的跳转条件:ZF=0 and SF=OF则跳转(大于则跳转,注:特指有符号数)

免费评分

参与人数 16吾爱币 +10 热心值 +15 收起 理由
linmu3613 + 1 我很赞同!
wuyou123 + 1 热心回复!
wws天池 + 1 + 1 我很赞同!
混曌大魔王 + 1 + 1 我很赞同!
z909022684 + 1 谢谢@Thanks!
抱书人人 + 1 + 1 谢谢@Thanks!
Reus·Lee + 1 我很赞同!
焚纸塔 + 1 + 1 谢谢@Thanks!
烟雨成林 + 1 希望坚持下去
胖子来了 + 1 + 1 用心讨论,共获提升!
Lucifer_BW + 1 + 1 热心回复!
海天一色001 + 1 + 1 谢谢@Thanks!
fjzry + 1 + 1 我很赞同!
52jcool + 1 + 1 我很赞同!
tlf + 1 我很赞同!
sdaza + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2021-7-11 11:04
侃遍天下无二人 发表于 2021-7-11 10:38
楼主解答一下JCC是啥东西,全称是什么,我没查到,只知道GCC是编译器

jcc应该是表示条件转移这一类的指令,全称可能是(Jump Conditional Code)
mushisshi 发表于 2021-7-11 06:41
感谢楼主的分享,我会怀着感激之情认真学下去的!
川爷 发表于 2021-7-11 07:43
eddiecgc 发表于 2021-7-11 07:51
喔,在吾爱在线学习C语言课程指日可待!
方长 发表于 2021-7-11 08:42
受教了,干货满满
Allen666 发表于 2021-7-11 08:47
感谢大佬,不错
ghoob321 发表于 2021-7-11 08:51
地址的计算方法涉及硬编码知识
WX4885 发表于 2021-7-11 08:56
这比学校划水老师讲得好
小龙虾辣菊花 发表于 2021-7-11 08:58
可以可以
lijisheng 发表于 2021-7-11 09:08
破解必备基础知识学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-26 00:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表