在计算机程序设计和计算机体系结构中,索引寄存器是通常内置在中央处理器(CPU)中的一个内存区域,用作快速计数器,用于单步执行内存地址或跟踪诸如循环之类的操作。根据系统结构的类型,索引寄存器可以定义为其它处理器寄存器...
在计算机程序设计和计算机体系结构中,索引寄存器是通常内置在中央处理器(CPU)中的一个内存区域,用作快速计数器,用于单步执行内存地址或跟踪诸如循环之类的操作。根据系统结构的类型,索引寄存器可以定义为其它处理器寄存器中的专用寄存器,也可以是任何通用寄存器。最常见的是,索引寄存器保存内存位置的当前偏移量,另一个寄存器保存基址,所以这两个寄存器的组合产生了一个完整的内存地址。索引寄存器的特殊功能之一,当一个由CPU专门指定时,它可以通过按需递增或递减的方式轻松地单步执行内存地址,以便遍历数组和堆栈等数据结构。

索引寄存器是内存的低级别区域,通常在CPU上。
计算机CPU上的索引寄存器是非常低级的内存区域,通常只有程序员通过使用汇编语言或类似的低级编程语言才能直接访问这些内存区域。在一些更常见的处理器类型中,两个独立的寄存器被定义为索引寄存器,即源索引(SI)和目标索引(DI)寄存器。其他处理器没有索引寄存器或支持需要它们的运算符,这意味着可以使用任何大小合适的通用寄存器。
索引寄存器最常用的用途之一是充当指向内存位置的指针,该内存位置包含需要按顺序访问的数据流例如,当使用一个所有元素在内存中连续排列的数据数组时,可以看到这样一个例子:如果使用索引寄存器访问一个数组,那么当将当前被访问的元素添加到另一个保存基址的寄存器时,它可以保存当前被访问元素的偏移量的相应值,例如数据段寄存器。这可以使完成诸如将以空结尾的字符串的内容从源位置复制到目标字符串等过程变得非常容易。
索引寄存器的另一个用途是保存有关循环和其他计数器的信息。某些系统结构更喜欢使用索引寄存器,用于保存循环中已发生的迭代次数,但有时也可以使用任何寄存器。此外,某些汇编指令特别依赖源和目标索引寄存器来执行某些操作,如块内存读写,如向屏幕发送信息。