專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

MCS-51單片機(jī)指令系統(tǒng)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2007年09月17日   【字體:

第三章  MCS-51單片機(jī)指令系統(tǒng)

(一)  指令系統(tǒng)簡介

1.    指令分類統(tǒng)計(jì)

指令總數(shù):111條  操作碼:255個(gè)  助記符:48個(gè)

單字節(jié)指令:49條                單周期指令:64條

 雙字節(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

關(guān)閉窗口