汇编直接跳转和利用寄存器跳转有什么区别?

汇编直接跳转和利用寄存器跳转有什么区别?

 0x2807fc   是函数A()的地址

JMP  0x2807fc    ;可以跳转到函数运行

但是

mov  eax,0x2807fc
JMP  eax            ; 先将地址放到eax,再跳转就不行了,为什么呢,有什么区别?

要注意段内跳转和段间跳转,你可以看你的EIP,看看他们的区别

单步执行看EIP的值不行吗

 00281310 < appjmp >:
 281310:    e9 e7 f4 ff ff          jmp    2807fc < task_b_main >
 281315:    c3                      ret   
==================================
 00281310 < appjmp >:
 281310:    b8 fc 07 28 00          mov    $0x2807fc,%eax
 281315:    ff e0                   jmp    *%eax
 281317:    c3                      ret  

这个是生成的中间文件,能否看出什么端倪

我这边做实验没有问题,。。。。。。。。。。。。。。。。。