监测点2.3疑问
监测点2.3中小鱼老师的解释为ip修改了四次,其中jmp ax修改了两次,我不明白为什么要先读入,在修改,而不是直接执行。那jmp 4e5a也是分两步的吗?本帖最后由 lukexc 于 2012-5-12 23:11 编辑
我也是初学者,我来解释下,不晓得对不,高手请拍砖!
第一次是读入jmp ax后,ip自增,第一次改变;
第二次是jmp ax这个指令执行完,将ax赋值给ip,ip第二次改变! mov ax,bx指令执行到指令的时候IP+1IP修改第3次
sub ax,ax 指令执行到指令的时候IP+1IP修改2次
jmp ax 指令执行到指令的时候IP+1IP修改第3次
在加上JMP修改了IP 所以总共修改了IP次数为4次
因为ip指向的是下一条将要执行的指令的偏移地址 所以在执行当前指令的时候ip就要加1啊 {:5_93:} jmp指令是不是包括如下两条指令呢。mov ip,ax和执行jmp ip 花落、季 发表于 2012-5-13 13:25 static/image/common/back.gif
因为ip指向的是下一条将要执行的指令的偏移地址 所以在执行当前指令的时候ip就要加1啊
以你的说法,执行到jmp ax时,此时ip指向jmp ax了,就该执行jmp了,然后ip跳到ax的位置了,应该是改变一次啊。 lukexc 发表于 2012-5-12 23:05 static/image/common/back.gif
我也是初学者,我来解释下,不晓得对不,高手请拍砖!
第一次是读入jmp ax后,ip自增,第一次改变;
第二 ...
请问为什么要读入呢?其他指令操作怎么就不需要读入。而是直接执行呢。 退聊人物;战孜瞳 发表于 2012-5-13 13:11 static/image/common/back.gif
mov ax,bx指令执行到指令的时候IP+1IP修改第3次
sub ax,ax 指令执行到指令的时候IP+1IP修改2次
j ...
执行完jmp ax后不就直接修改ip并跳转到ax的位置了吗?为什么在这之前要先加1呢? 蓝色旋律 发表于 2012-5-13 16:24 static/image/common/back.gif
执行完jmp ax后不就直接修改ip并跳转到ax的位置了吗?为什么在这之前要先加1呢?
他问的是修改了几次。 执行到jmp的时候修改了2次。。先是+1修改一次然后在根据指令修改一次。 也可以这样告诉你把,将要执行下一条指令的时候 IP会+上1 然后才指引到下个地址 IP不加上一个1怎么指定地址?怎么执行地址那的指令? 这是有先后顺序的。 楼上说的对!!!
本帖最后由 蓝色旋律 于 2012-5-14 10:53 编辑
退聊人物;战孜瞳 发表于 2012-5-13 16:31 http://bbs.fishc.com/static/image/common/back.gif
IP不加上一个1怎么指定地址?怎么执行地址那的指令? 这是有先后顺序的。
执行mov ax,bx ------ip加1,修改第一次
mov ax,ax------------ip加1,修改第二次,此时ip指向jmp
jmp ax-------ip直接修改为ax,而不必加1
我的分析是这样的,应该是先执行本条语句,然后才是修改ip,到jmp后ip直接修改,就不会加1了吧。我是这么理解的,有什么问题吗?请赐教。
另确认下,ip是在执行完本条指令后加1以指向下条指令呢,还是先ip加1指向本条指令再执行本条指令。
刚开始IP先加上1指向第一条指令后面类推。 退聊人物;战孜瞳 发表于 2012-5-14 17:00 static/image/common/back.gif
刚开始IP先加上1指向第一条指令后面类推。
也就是是先ip加1指向下条指令,然后才执行加1前的指令(也就当前指令)? 蓝色旋律 发表于 2012-5-14 17:07 static/image/common/back.gif
也就是是先ip加1指向下条指令,然后才执行加1前的指令(也就当前指令)?
将要开始执行第一条指令的时候 先是IP+1 然后指定第一条指令的地址。 然后和后面的加起来就是4次修改了。 本帖最后由 Seely 于 2012-5-15 13:11 编辑
mov ax,bx ;执行此指令,第一次。
sub ax,ax ;执行此指令,第二次。
jmp ax ;此步修改两次。 Seely 发表于 2012-5-14 19:37 static/image/common/back.gif
mov ax,bx ;执行此指令,第一次。
sub ax,ax ;执行此指令,第二次。
jmp ax ;把 ax 的 ...
第三次已经将ip修改为ax了,执行jmp直接就跳到0处,这次ip应该是不改变值得吧。 在debug里执行此指令,用t执行后,ip也是现实修改三次啊。 退聊人物;战孜瞳 发表于 2012-5-14 17:15 static/image/common/back.gif
将要开始执行第一条指令的时候 先是IP+1 然后指定第一条指令的地址。 然后和后面的加起来就是4次修改了。
意思也就是说执行本条指令前,ip先加一指向了下条指令,然后才执行本指令。
页:
[1]
2