永发信息网

关于近转移JMP NEAR PTR

答案:2  悬赏:50  手机版
解决时间 2021-04-08 01:43
  • 提问者网友:欺烟
  • 2021-04-07 14:42
关于近转移JMP NEAR PTR
最佳答案
  • 五星知识达人网友:青尢
  • 2021-04-07 15:06
JMP NEAR PTR这个指令不完全,后面应该还有个标号
这样:JMP NEAR PTR START
这么解释,首先,在某些版本的编译器中,如果遇到向前跳转,那么对与JMP这条指令来讲,机器不知道是短跳转(-128~+127)还是近跳转(-32768~+32767),所以都会产生EBxx90这个机器码,EB是JMP的机器码,xx代表D16的偏移值,90是NOP的机器码。这样的话,就会有三个字节。
我们知道IP始终是指向下一条指令地址的,那么当JMP NEAR PTR START时,此时的IP应该是指向JMP指令的下一条指令,也就是JMP+3,至于那个D16是START标号三个属性中的偏移属性而已。这样的话,IP就跳转以近跳转的方式跳到START去执行程序。
你也可以改成JMP SHORT PTR START 这样的话,机器码就是EBXX,XX代表短跳转的偏移(-128~+127),此时就变成了JMP+2+D16
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-04-07 16:14
138A:0000 EB00 JMP 0002
138A:0002 E9FD01 JMP 0202
138A:0005 9AEEFE1DF0 CALL F01D:FEEE
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯