寻址方式就是指令中用来找到存放操作数的地址并把数据提取出来的方法。51系列单片机指令系统的寻址方式有以下7种: (1)立即寻址:在这种寻址方式中,指令中跟在操作码后面的一个字节就是实际操作数。立即数前面必须有符号“#”。 (2)直接寻址:直接寻址就是在指令中包含了操作数的地址,该地址直接给出了参加运算或传送的数据所在的字节单元或位,它可以访问内部RAM的128字节单元、221个位地址空间以及特殊功能寄存器SFR,且SFR和位地址空间只能用直接寻址方式来访问。 (3)寄存器寻址:寄存器寻址是指以某一个可寻址的寄存器的内容为操作数。对于累加器A、通用寄存器B、数据指针寄存器DPTR和进位位C,其寻址时具体的寄存器已隐含在其操作码中,而对于选定的8个工作寄存器R0~R7,则用操作码的低3位指明所用寄存器。 (4)寄存器间接寻址方式:在这种寻址方式中,操作数所指定的寄存器中存放的不是操作数本身,而是操作数的地址。寄存器间接寻址方式把指令中寄存器的内容作为地址,再到该地址单元取得操作数。变址寻址寄存器间接寻址用符号“@”表示。 (5)基址寄存器加变址寄存器间接寻址:以数据指针DPTR或程序计数器PC的内容为基地址,然后,在这个基地址的基础上加上累加器A中的地址偏移量形成真正的操作数地址。这种寻址方式常用于查表操作。 (6)相对寻址:将程序计数器PC中的当前值(该当前值是指执行完这条相对转移指令后的PC的字节地址)为基准,加上指令中给定的偏移量所得结果而形成实际的转移地址。这种寻址方式主要用于转移指令指定转移的目标地址。 (7)位寻址:对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。位地址表示一个可作位寻址的单元,它或者在内部RAM中或者是一个硬件的位。