如何存储CS和IP地址(Intel 8086)?

时间:2014-12-02 16:44:08

标签: assembly x86-16 tasm

我想将CS(代码段)和IP(指令指针)地址存储到任何可用的寄存器AX,BX,CX或DX中。是否有可能以某种方式访问​​当前的CS或IP值?

2 个答案:

答案 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