汇编直接跳转和利用寄存器跳转有什么区别?
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
这个是生成的中间文件,能否看出什么端倪
我这边做实验没有问题,。。。。。。。。。。。。。。。。。