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

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

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

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

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

雪    币: 5621
活跃值: (1177)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
从黎明到衰落 1 2019-3-10 16:48
6
0
JZ  在ZF = 0时近跳转
JE 在(相等)ZF = 1时近跳转
雪    币: 2097
活跃值: (675)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
sidyhe 1 2019-3-10 16:54
7
1
从黎明到衰落 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).

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

 条件转移指令JE/JZ 

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

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

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