一、寻址方式
找到存放操作数的地址,把操作数提取出来
二、几种寻址方式
1.立即寻址
MOV A,#70H ;将立即数70H传送到累加器A
2.寄存器寻址:给出寄存器名字,将寄存器的内容取出来。
MOV A,R0 ;将寄存器R0中的内容传送到累加器A
累加器ACC、B寄存器、数据指针DPTA和进位C也可以用于寄存器寻址方式访问,只是对它们寻址,具体寄存器名称隐含在操作码中。
3.直接寻址:给出某一存储单元地址,对该单元的内容进行操作
MOV A,70H ;将片内RAM地址为70H的单元的内容送到A中。
直接寻址方式用于访问以下存储空间:
①SFR
eg:
MOV A,80H
可以写成
MOV A,P0
(P0口的地址为80H)
②片内数据存储器低于128字节
③位地址空间
4.寄存器间接寻址:给出寄存器名字,以改寄存器的内容为地址,将地址的数据取出。
MOV A,@R1 ;将以寄存器R1的内容为地址的片内RAM单元的数据传送到A
可用作寄存器间接寻址的寄存器:R0,R1,DPTR
5.基寄存器加变址寄存器间接寻址:给出基寄存器(DPTR或PC)和变址寄存器(累加器A),将基寄存器和变址寄存器的内容之和为地址,将该地址的数据取出。
MOVC A,@A+DPTR
6.相对寻址:以当前程序计数器PC值加上指令中给出的偏移量rel,构成实际操作数地址。
PC值:相对转移指令的存储地址+该指令字节数
eg:
JZ rel ;它是一条若累加器A为0就转移的双字节指令
;该指令的存储地址为2050H
;则当前PC值为2052H
偏移量rel:有符号,单字节,补码表示,负数表示从当前地址向前转移,正数表示向后。
目标地址=指令存储地址+指令字节数+rel
7.位寻址:在位操作指令中直接给出操作数的地址。
参考书籍:单片机原理及应用(第4版)-电子工业出版社