滴水逆向笔记(JCC)第一部分

目录

进位标志CF(Carry Flag)

奇偶标志PF (Parity Flag)

溢出标志OF (Overflow Flag)

JMP指令

CALL指令


进位标志CF(Carry Flag)

如果运算结果的最高位产生了一个进位或借位,那么,其值1,否则其值为0。

最高位进位是指二进制数的最高位向前一位进1,最高位借位是指二进制数的最高位向前一位借1,例如80-81(十六进制下),其实就是1000 0000 - 1000 1111,运算可得结果为1111 1111 ,即FF

这里最高位就因为被后一位借1而小于减数的最高位,对前一位借1,因此FF的CF值就是1。

奇偶标志PF (Parity Flag)

统计操作数的最后一个字节中1的个数,如果是偶数个1则PF=1,否则PF=0。

重点是“最后一个字节”,PF位的值与其他字节中1的个数无关。

例如803(十六进制)是1000 0000 0011,它的PF值是1,804是1000 0000 0100,它的PF值是0。

溢出标志OF (Overflow Flag)

加法:若同符号数相加,而结果符号与之相反,则OF=1,否则OF=0;若不同符号数相加,一定没有溢出。

减法: 被减数与减数异号,而结果的符号与减数相同则OF=1,否则OF=0。

如何算OF?

例如:符号位有进位:1

最高有效数值位向符号位产生的进位:0

将这两个数值异或判断是否唯一,1 xor 0 == 1

为真,OF=1,为假,OF=0。

JMP指令

修改EIP,用法:jmp+地址(JMP只影响EIP,不影响堆栈和寄存器)。

CALL指令

可以与JMP指令一样修改EIP,但是CALL会将他下一行的地址压入栈中,使得ESP发生变化。

call指令执行后必须返回,也就是必须有一个retn指令,返回到call指令的下一行。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值