5变址寻址 以DPTR和PC基址寄存景和累加暴A变址寄存器 的内容和为地址,寻址该地址单元,读取数据 (1)MOVC A, @A+ DPtR A<(A+DPTR) 程序存储器 A DPTR 06H[2000 ALU 34H|2006H 2006H
5 变址寻址 以DPTR和PC基址寄存器和累加器A变址寄存器 的内容和为地址,寻址该地址单元,读取数据 A 06H A L U (1)MOVC A,@A+DPTR ;A←(A+DPTR) 20 00H DPTR 程序存储器 34H × × ……. ……. 2006H 2006H
(2)MOVC A, @A+PC A +(A+PC) 执行第二条指令时先取指,将该指令取完后 的PC值和累加器A中的偏移量相加,作为操作 数地址,从该地址中取出操作数送入A中。第 二条过程与第一条指令类似 程序存储器 A PC 00 34H[2000 83H←PC=2005H PC+1=2006H ALU 34H_20CH 200CH
(2)MOVC A,@A+PC ;A ←(A+PC) 执行第二条指令时先取指,将该指令取完后 的PC值和累加器A中的偏移量相加,作为操作 数地址,从该地址中取出操作数送入A中。第 二条过程与第一条指令类似, A 06H ←PC+1=2006H A L U 20 06H PC 200CH ←PC=2005H 程序存储器 34H ……. ……. 83H ……. 200CH 34H
说明 >寻址范围:64KB程序存储器 变址+基址形成的ROM地址中的值为 操作数 基址寄存器DPTR—16位数据指针 PC 16位程序指针 变址寄存器 8位累加器 (1)MOVC A, @A+ DPTR A(A+DPTR) (2)MOVC A, @A+PC A (A+PC)
说明 ➢寻址范围:64KB程序存储器 ➢变址 + 基址形成的ROM地址中的值为 操作数 • 基址寄存器 DPTR —— 16 位数据指针 PC —— 16 位程序指针 • 变址寄存器 A —— 8 位累加器 (1)MOVC A,@A+DPTR ;A←(A+DPTR) (2)MOVC A,@A+PC ;A ←(A+PC)
目6相对寻址 相对寻址只出现在相对转移指令中。相对转移指令 执行时,以PC当前值加上偏移量re得转移地址 PC当前值:执行完相对转移指令后的PC值 目的地址=原源地址+2+rel PC当前值 源地址:转移指令操作码所在的地址 目的地址:转移后的地址 2:相对转移指令字节数
6 相对寻址 相对寻址只出现在相对转移指令中。相对转移指令 执行时,以PC当前值加上偏移量rel得转移地址 目的地址=源地址+2+rel 源地址:转移指令操作码所在的地址 目的地址:转移后的地址 2:相对转移指令字节数 PC当前值:执行完相对转移指令后的PC值 PC当前值
例) SMP rel;PC←PC+2+re 2000:8026H 程序存储器 A PC 0000AN× 26H 20H02H 2000H(80H 2001H|26H ALU 2002H 2028H× 2028H 月的地址 由CPU把目的地址送入PC
A 26H PC 20H 02H A L U 程序存储器 0000H 2000H 2001H 80H 26H × × 2028H × × 2002H ┆ SJMP rel ;PC← PC+2+rel 2000: 80 26H 例 2028H 目的地址 由CPU把目的地址送入PC