MCS-51指令的寻址方法有七种:
1.当即寻址——操作数直接出现在指令中,操作数可认为#da
MOV A,#da
MOV DPTR,#da
2.直接寻址 ——操作数的单元地址直接出现在指令中,这一寻址方法可以进行内部存储单元的拜访。它包含:
(1)特别功用寄存器地址空间。这也是专一可寻址特别功用寄存器(SFR,高128字节)的寻址方法。
MOV A,P1
MOV TCON,A
(2)内部RAM的低128字节
MOV A,76H
MOV A,43H
3.寄存器寻址
MOV A,R1
这种寻址方法中,寄存器中的内容便是操作数,可用来拜访当时的作业寄存器Rn,累加器A、寄存器B、位累加器C和数据指针DPTR。
4.寄存器直接寻址
这种方法中,指定寄存器中的内容是操作数的地址,该地址对应存储单元的内容才是操作数。可以这种寻址方法中寄存器实际上是地址指针。可以用于寄存器直接寻址的寄存器有R0、R1、SP、DPTR,拜访内部数据存储器时,用当时作业寄存器R0和R1作间址,在仓库操作中则用SP作间址,对外部RAM进行读取操作时,有必要选用寄存器直接寻址方法,
5.变址寻址——变址寻址方法是以程序指针PC或数据指针DPTR为基址寄存器,以累加器A作为变址寄存器,两者内容相加(即基地址+偏移量)构成16位的操作数地址,首要用于拜访固化在程序寄存器中的某个字节。
(1)用程序指针PC基地址,A作变址,构成操作数地址:@A+PC。
用正履行指令下一条指令(PC总是指向下条要履行的指令)的地址+A的地址
(2)用数据指针DPTR作基地址,A作变址,构成操作数地址:@A+DPTR。
6.相对寻址——以程序计数器PC的当时值作为基地址,与指令中的第二字节给出的相加偏移量rel相加,所得的相对偏移地址。
7.位寻址——位寻址的空间只能是片内RAM的20H~2FH字节地址中的一切位(位地址为00H~7FH)和部分SFR位(地址能被8整除)。