请问如何取得IP寄存器指向的地址?

来源:百度知道 编辑:UC知道 时间:2024/05/20 01:31:05
最好有例子说明!谢谢……

这个分只有我拿了,看来。没人回答的说。

ip地址一般不可直接获得,但可以采用特殊的方式用call来获得,因为call之前近call是把ip压栈,远call是把cs和ip分别压栈的。(在32位flat内存模式下,则都是近call)

构造如下call即可

近call
...
call xxxx
...
xxxx
pop ax ;栈的地址就是ip呀
push ax ;还原,否则等下不能ret
;现在ax就是所要的ip
ret ;返回

远call
...
call yyyy:xxxx
...
yyyy:xxxx
pop ax ;ax就是ip
pop bx ;bx就是cs
push bx ;还原嘛
push ax ;还原嘛
;bx:ax就是需要的cs:ip
retf ;返回