第三章 MCS-51單片機(jī)指令系統(tǒng)
(一) 指令系統(tǒng)簡介
1. 指令分類統(tǒng)計(jì)
指令總數(shù):111條 操作碼:255個(gè) 助記符:48個(gè)
雙字節(jié)指令:48條 雙周期指令:45條
三字節(jié)指令:17條 四周期指令:2條
表3-1 MCS-51指令分類
數(shù)據(jù)傳送指令(29) |
數(shù)據(jù)處理指令(48) |
位操作指令(12) |
程序控制指令(22) |
1) 內(nèi)部傳送(16) 2) 外部傳送(4) 3) 查表 (2) 4) 交換 (5) 5) 棧操作 (2) |
1) 算術(shù)運(yùn)算(24) 2) 邏輯運(yùn)算(24) |
1) 位傳送(2) 2) 位置值(4) 3) 位邏輯(6) |
1) 調(diào)用及返回(4) 2) 無條件轉(zhuǎn)移(4) 3) 條件轉(zhuǎn)移 (11) 4) 循環(huán) (2) 5) 空操作 (1) |
2. 符號約定
ê Rn 表示當(dāng)前工作寄存器中的R0~R7
ê Direct 表示對內(nèi)部單元直接尋址的8位地址
ê lRi 表示8位地址指針lR0或lR1,地址在R0或R1中。
ê lDPTR 表示16位地址指針,地址在DPTR中。
ê #data 表示8位立即數(shù)。
ê #data16 表示16位立即數(shù)。
ê lA+基地址 表示以A為變址寄存器。
ê addr11 表示短轉(zhuǎn)移的11位地址。
ê addr16 表示長轉(zhuǎn)移的16位地址。
ê rel 表示相對轉(zhuǎn)移的地址偏移量。
ê bit 表示位地址。
ê (xx) 表示XX單元的內(nèi)容,如(A)表示寄存器A的內(nèi)容。
ê ((xx)) 表示以(xx)為指針,所指單元的內(nèi)容。例如,
((DPTR))表示數(shù)據(jù)指針DPTR所指單元的內(nèi)容。
轉(zhuǎn)載須保留地址:http://www.torrancerestoration.com/mcu/279.html
3. 尋址方式
表 F1-1 MCS-51指令系統(tǒng)的尋址方式
尋 址 方 式 |
尋 址 范 圍 |
操作數(shù)形式 |
舉 例 |
|
寄存器 尋址 |
R0-R7 ,DPTR Acc,B,C(Cy 位) |
寄存器名 |
MOV R3,A INC DPTR |
|
直接 尋址 |
內(nèi)部RAM 00H-7FH 特殊功能寄存器 80H-FFH |
8位地址 SFR名 |
MOV 79H,SP PUSH P1 |
|
直接 位尋址 |
內(nèi)部RAM位尋址區(qū) (20H-2FH): 位地址00H-7FH 可尋址的特殊功能寄存器: 位地址 80H-F7H |
8位地址 位名 SFR名.位序 |
MOV C,78H CLR TR0 ANL C,P0.1 |
|
寄存器 間接 尋址 |
以數(shù)據(jù)指針表示操作數(shù)。 內(nèi)部RAM 00H-7FH |
@R0 @R1 |
MOV A, @R0 ADD A, @R1 |
|
外部RAM或I/O端口 00H-FFH / 0000H-FFFFH |
@R0 ,@R1@DPTR |
MOVX A, @R0 MOVX @DPTR,A |
||
立即 尋址 |
8位(二進(jìn)制)立即數(shù), |
# data |
MOV A,# 1 |
|
16位(二進(jìn)制)立即數(shù) |
# data16 |
MOV DPTR,#2000H |
||
基址 加 變址 尋址 |
以變址方式讀程序存貯器 實(shí)際地址=基址+變址偏移量 8位無符號變址偏移量由A提供 基址由PC或DPTR提供 |
@A+DPTR @A+PC |
MOVC A,@A+DPTR MOVC A,@A+PC
|
|
轉(zhuǎn) 移 地 址 的 尋 址 方 式 |
||||
相對 尋址 |
轉(zhuǎn)移地址= 基址+相對偏移量rel 基址為取指令后的PC 值 8位有符號數(shù)rel在指令中給出 |
rel |
SJMP 0EBH |
|
標(biāo)號 |
SJMP LOOP ; 標(biāo)號 |
|||
直接 尋址 |
短轉(zhuǎn)移,指令直接給出11位地址 |
Addr11或標(biāo)號 |
AJMP NEW ; 標(biāo)號 |
|
長轉(zhuǎn)移,指令直接給出16位地址 |
Addr16或標(biāo)號 |
LJMP 2010H |
||