首页
社区
课程
招聘
未解决 [求助]jz和je有什么区别?
发表于: 2019-3-10 06:31 10561

未解决 [求助]jz和je有什么区别?

2019-3-10 06:31
10561
je 等于则跳转,那哪个操作数,等于哪个操作数跳转呀,jz不是和标志寄存器有关吗?百度查了好多还是看不懂?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
jz就是je, 受eflags的ZF位影响
硬说区别就是字面上的吧, jmp if zero/jmp if equal
一般来说条件跳转前面一定有影响ZF的指令, test/and/or/cmp/sub/......
具体可以查一下汇编手册, 会具体告诉你指令完成后影响哪些标志位
2019-3-10 06:56
2
雪    币: 5514
活跃值: (2254)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
sidyhe jz就是je, 受eflags的ZF位影响 硬说区别就是字面上的吧, jmp if zero/jmp if equal 一般来说条件跳转前面一定有影响ZF的指令, test/and/or/cmp/ ...
JE说的等于则跳转,哪个等于则跳转呀?
2019-3-10 15:32
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
Jcc — Jump if Condition Is Met

跳不跳由 EFLAGS 决定
而影响 EFLAGS 的是其他指令, 并不在JX本身里
2019-3-10 16:37
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
  cmp eax, 0
  jne @f
  call func1
  ret
@@:
  call func2
  ret
这几句的意思是
若eax是0则调用func1否则调用func2
可见条件跳转是和"比较"相关的指令联合使用的

等同于C语言伪代码
if (eax == 0)
{
  func1();
}
else
{
  func2();
}

2019-3-10 16:46
1
雪    币: 5621
活跃值: (1546)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
6
JZ  在ZF = 0时近跳转
JE 在(相等)ZF = 1时近跳转
2019-3-10 16:48
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
从黎明到衰落 JZ 在ZF = 0时近跳转 JE 在(相等)ZF = 1时近跳转
JE rel8        D        Valid        Valid        Jump short if equal (ZF=1).
JZ rel8        D        Valid        Valid        Jump short if zero (ZF = 1).

难道我这汇编手册是假的嘛...
2019-3-10 16:54
1
雪    币: 2359
活跃值: (533)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
从黎明到衰落 JZ 在ZF = 0时近跳转 JE 在(相等)ZF = 1时近跳转
这两个汇编出来机器码都一样的你说一个是0跳一个是1跳,别吓人好不……

 条件转移指令JE/JZ 

 格式: JE/JZ标号
 ----
 功能: ZF=1,转至标号处执
 ----
 说明: 1. 指令JE与JZ等价,它们是根据标志位ZF进行转移的指令
       2. JE,JZ均为一条指令的两种助记符表示方法
2019-3-10 18:02
1
雪    币: 5621
活跃值: (1546)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
9
老刘NoOne 这两个汇编出来机器码都一样的你说一个是0跳一个是1跳,别吓人好不…… 引 条件转移指令JE/JZ 格式: JE/JZ标号 ---- 功能: ZF=1,转至标号处执 ---- ...
嗯,不好意思,是我弄错了
2019-3-11 18:49
0
雪    币: 5621
活跃值: (1546)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
10
sidyhe JE rel8 D Valid Valid Jump short if equal (ZF=1). JZ rel8 D Valid Valid Jump short if zero (ZF = 1) ...
是我看错了
2019-3-11 18:53
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
是我看错了
2019-3-11 19:55
0
雪    币: 2126
活跃值: (5457)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
机器码一样!!!!
2021-1-26 22:02
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13

作用等同,机器指令都是一样的。

最后于 2021-1-27 10:22 被低调putchar编辑 ,原因:
2021-1-26 23:09
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
没区别
2021-1-27 00:11
0
雪    币: 5334
活跃值: (3246)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
没区别
2021-1-27 00:37
0
游客
登录 | 注册 方可回帖
返回