fky1989 发表于 2011-7-22 23:20:49

问一个关于jmp的问题~~

本帖最后由 fky1989 于 2011-7-23 13:12 编辑


JMP往上的时候移动就包括jmp本身的2个字节?往下移动的时候就不包括?
0BA8:0018          B80000    MOV      AX,0000
0BA8:001B            CD21   INT      21
0BA8:001D             B80000   MOV    AX,0000
0BA8:0020            EBF6      jmp    0018

F6是10,就是往上10个,那这个题要跳到0018,就得是22-F6,包括了jmp本身的两个字节

但我看往下的时候就不用包括jmp本身的两个字节,请问是不是这样呢?也没听到甲鱼老师讲到



bevin 发表于 2011-7-23 00:16:44

是这样的。。。在cpu从代码段取出指令的时候,ip已经自动指向下一条指令,在这里,取出指令 jmp    0018 后,ip的值已经自加2,即ip变成22h,所以再执行 jmp    0018,,,22h-10h =18h,即是要跳转的指令处。。。。。

fky1989 发表于 2011-7-23 13:12:42

bevin 发表于 2011-7-23 00:16 static/image/common/back.gif
是这样的。。。在cpu从代码段取出指令的时候,ip已经自动指向下一条指令,在这里,取出指令 jmp    0018 后 ...

感谢哦。。。。。。。。。。。。。。。。。。。
页: [1]
查看完整版本: 问一个关于jmp的问题~~