Intel 64/x86

您所在的位置:网站首页 eip寄存器是几位的 Intel 64/x86

Intel 64/x86

2024-06-28 23:08| 来源: 网络整理| 查看: 265

Instruction Pointer

指令指针IP/EIP/RIP的基本功用是指向要执行的下一条地址。在8080 8位微处理器上的寄存器名称是PC(program counter,程序计数器),从8086起,被称为IP(instruction pointer,指令指针)。主要区别在与PC指向正在执行的指令,而IP指向下一条指令。

指令指针EIP寄存器包含了当前代码段中的一个偏移量,通过CS:EIP联合指向了即将执行的下一条指令。对于顺序执行的指令,EIP从前一条指令边界移到下一条指令边界上;对于控制转移指令,例如JMP,Jcc,CALL,RET和IRET指令,EIP会向前或先后跳跃数条指令。

软件不能直接访问(即读取/修改)EIP寄存器;但是可以隐式地通过控制转移指令(JMP,Jcc,CALL和RET),中断,和异常来间接控制EIP。要想读取到EIP寄存器的值,唯一的手段是执行CALL指令,然后从程序栈中读取返回指令指针。通过修改程序栈中返回指令指针的值,然后执行RET或IRET指令,可以间接的加载EIP寄存器。

所有的IA-32处理器都预取指令。指令预取过程中,通过总线读取的指令地址并不一定等于EIP寄存器的值。尽管各代处理器都有各自的预取机制,但是EIP寄存器用于控制程序流这个基本功能在各代处理器间保持了完全的兼容性。

Instruction Pointer in 64-Bit Mode

在64位模式下,指令指针是RIP寄存器。这个寄存器保持着下一条要执行的指令的64位地址偏移量。64位模式支持一种新的寻址模式,被称为RIP相对寻址。使用这个模式,有效地址的计算方式变为RIP(指向下一条指令)加上位移量。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3