80C51指令系統(tǒng)專用于80C51系列單片機,具有255種操作碼(00H-FFH)除去A5H。
1. 尋址方式
尋址方式就是指指令中給出尋找操作數(shù)或操作數(shù)所在地址的方法,執(zhí)行任何指令都需要操作數(shù)。
1)立即尋址
MOV DPTR,#1234H; 立即尋址是指在指令中直接給出操作數(shù),出現(xiàn)在指令中的操作數(shù)稱為立即數(shù),因此被稱為立即尋址。
2)直接尋址
MOV A,3AH; 直接尋址是指在指令中直接給出操作數(shù)單元地址。功能是將片內(nèi)RAM的3AH單元內(nèi)的數(shù)據(jù)傳送內(nèi)累加器A。
直接尋址方式只能給出8位地址,因此這種尋址方式的尋址范圍只限于片內(nèi)RAM。具體:a.低128單元,在指令中直接以單元地址的形式給出;b.特殊功能寄存器,即可以以單元地址形式也可以以寄存器符號形式給出。直接尋址是訪問SFR寄存器的唯一方法。
3)寄存器尋址
INC R0; 寄存器尋址是指指令中將指定的寄存器的內(nèi)容作為操作數(shù)。該語句實現(xiàn)R0寄存器的自加一操作。
寄存器尋址范圍: a.四個寄存器組共32個通用寄存器; b.部分特殊功能寄存器,A、AB、DPTR。
4)寄存器間接尋址
ANL A,@R1; 是指在指令中給出的寄存器內(nèi)容是操作數(shù)的地址,從該地址取出的才是操作數(shù)。@前綴是區(qū)分寄存器尋址和間接尋址的標志。
尋址范圍:
a.片內(nèi)ram低128單元,只能采用R0或R1為間接尋址寄存器;
b.片外的64K ram單元,使用DPTR作為間接尋址寄存器;
c.片外RAM低256單元,除了用DPTR外還可以用R0或R1為間址寄存器,例如MOVX A,@R0
d.堆棧區(qū),堆棧操作指令(PUSH和POP)
5)相對尋址
是指在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。如JC 80H;
6)變址尋址
是指以DPTR或PC為基址寄存器,累加器A作為變址寄存器,以兩者的內(nèi)容相加,形成16為的程序存儲地址作為操作數(shù)地址。
如:MOVC A,@A+DPTR; 變址尋址只能對程序存儲器尋址
7)位尋址
單片機有位操作功能,位尋址的范圍包括:
a)片內(nèi)ram中的位尋址區(qū)。有20H-2FH,共16個單元128位,可以直接使用位地址0H~7FH
b)可位尋址的SFR。共有11個可位尋址SFR,實際有83個位可位尋址。