80C51指令系统专用于80C51系列单片机,具有255种操作码(00H-FFH)除去A5H。
1. 寻址方式
寻址方式就是指指令中给出寻找操作数或操作数所在地址的方法,执行任何指令都需要操作数。
1)立即寻址
MOV DPTR,#1234H; 立即寻址是指在指令中直接给出操作数,出现在指令中的操作数称为立即数,因此被称为立即寻址。
2)直接寻址
MOV A,3AH; 直接寻址是指在指令中直接给出操作数单元地址。功能是将片内RAM的3AH单元内的数据传送内累加器A。
直接寻址方式只能给出8位地址,因此这种寻址方式的寻址范围只限于片内RAM。具体:a.低128单元,在指令中直接以单元地址的形式给出;b.特殊功能寄存器,即可以以单元地址形式也可以以寄存器符号形式给出。直接寻址是访问SFR寄存器的唯一方法。
3)寄存器寻址
INC R0; 寄存器寻址是指指令中将指定的寄存器的内容作为操作数。该语句实现R0寄存器的自加一操作。
寄存器寻址范围: a.四个寄存器组共32个通用寄存器; b.部分特殊功能寄存器,A、AB、DPTR。
4)寄存器间接寻址
ANL A,@R1; 是指在指令中给出的寄存器内容是操作数的地址,从该地址取出的才是操作数。@前缀是区分寄存器寻址和间接寻址的标志。
寻址范围:
a.片内ram低128单元,只能采用R0或R1为间接寻址寄存器;
b.片外的64K ram单元,使用DPTR作为间接寻址寄存器;
c.片外RAM低256单元,除了用DPTR外还可以用R0或R1为间址寄存器,例如MOVX A,@R0
d.堆栈区,堆栈操作指令(PUSH和POP)
5)相对寻址
是指在指令中给出的操作数为程序转移的偏移量。如JC 80H;
6)变址寻址
是指以DPTR或PC为基址寄存器,累加器A作为变址寄存器,以两者的内容相加,形成16为的程序存储地址作为操作数地址。
如:MOVC A,@A+DPTR; 变址寻址只能对程序存储器寻址
7)位寻址
单片机有位操作功能,位寻址的范围包括:
a)片内ram中的位寻址区。有20H-2FH,共16个单元128位,可以直接使用位地址0H~7FH
b)可位寻址的SFR。共有11个可位寻址SFR,实际有83个位可位寻址。