我想将CS(代码段)和IP(指令指针)地址存储到任何可用的寄存器AX,BX,CX或DX中。是否有可能以某种方式访问当前的CS或IP值?
答案 0 :(得分:5)
是的,CS
可以直接访问。但是,IP
不是。通常的技巧是执行CALL
指令,将其置于堆栈中:
mov dx, cs ; save cs into dx
call next
next:
pop ax ; place ip of "next" into ax, adjust as necessary
当然只有在加载地址未知时才需要这样做。
答案 1 :(得分:-2)
获得IP的另一种方法是:
CALL getIP
getIP:
mov bx,[sp];将返回地址读入BX。
RET