Ret 和 call 也是转移指令,但是他们跟jmp不同的是,这两个转移指令都跟栈有关系。
ret
用栈中的数据修改IP的地址,从而实现近转移
( ip ) = ( (ss)*16+ sp )
( sp ) =( sp ) + 2
相当于pop ip
retf
用栈中的数据来修改CS以及IP的值,实现段间转移
( ip ) = ( (ss)*16+ sp )
( sp ) =...
分类:
其他好文 时间:
2014-06-22 20:14:23
阅读次数:
151
1.ret
指令用栈中的数据,修改IP的内容,从而实现近转移
CPU执行ret指令时,进行下面两步操作:
(1)(IP)=((ss)*16+(sp)) //使用栈顶元素修改IP实现跳转
(2)(sp)=(sp)+2
2.retf
用栈中的数据,修改CS和IP的内容,从而实现远转移
CPU执行retf指令时,进行下面四步操作:
(1)(IP)=((ss)*16+(sp))
...
分类:
其他好文 时间:
2014-05-02 06:54:21
阅读次数:
394