索引寻址模式
我们将通过两个例子来理解索引寻址模式的概念。看看以下说明 -
MOVC A, @A+DPTR
和
MOVC A, @A+PC
其中 DPTR 是数据指针,PC 是程序计数器(都是 16 位寄存器)。考虑第一个例子。
MOVC A, @A+DPTR
源操作数是@A+DPTR。它包含来自该位置的源数据。这里我们将 DPTR 的内容与累加器的当前内容相加。此添加将给出一个新地址,即源数据的地址。该地址指向的数据随后被传送到累加器。
操作码是 93H。DPTR 的值为 01FE,其中 01 位于 DPH(高 8 位)中,FE 位于 DPL(低 8 位)中。累加器的值为 02H。然后执行 16 位加法,01FE H+02H 产生 0200 H。位置 0200H 的数据将被传输到累加器。累加器 (02H) 中的先前值将被 0200H 中的新数据替换。图中突出显示了累加器中的新数据。
这是一条 1 字节指令,执行需要 2 个周期,与之前的指令(每条指令均为 1 个周期)相比,该指令所需的执行时间较长。
另一个例子 MOVC A, @A+PC工作方式与上述示例相同。这里不是将 DPTR 与累加器相加,而是将程序计数器 (PC) 内的数据与累加器相加以获得目标地址。