基址寄存器:寄存器BX称为基地址寄存器(Base
Register),它可作为存储器指针来使用。
变址寄存器:32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。
寄存器ESI、EDI、SI和DI称为变址寄存器(Index
Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。
变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。
它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。
位移量一般由立即数提供,可以使一个8位或16位的立即数。偏移量指的是偏移地址。位移量是偏移量的一个组成部分。
为了表示偏移地址的方便和灵活,偏移地址可以由几部分构成。
基址寄存器+变址寄存器可以理解为:
基址寄存器中保存一个数组的起始地址,变址寄存器中保存某个数组元素与数组起始之间的相对偏移,加在一起,就是某个元素的偏移地址。