文件下載

第三章  8051單晶片程式指令

8051單晶片程式指令依其功能,可分為以下5類:

1.  算術指令

2.  邏輯指令

3.  資料轉移指令

4.  布林(Boolean)運算指令

5.  程式跳躍指令

以下就上列指令;分別說明每個指令動作、佔用的位元數及執行時間週期:

指令表

 指令符號定義

符號

說明

Rn

所選擇暫存器庫中之R0~R7n=0~7

direct

直接定址位址。

@Ri

間接定址位址,i=01

#data

8位元資料常數。

#data16

16位元資料常數。

addr11

11位元位址常數,使用於ACALLAJMP指令。

addr16

16位元位址常數,使用於LCALLLJMP指令。

rel

8位元偏移位址常數,使用於SJMP及相對跳躍指令中。

bit

位元定址位址。

以右方資料取代左方資料。

(X)

X內容取出。

((X))

X內容為位址,以間接定址方式取出資料。

rrr

n2進制值。如n=6rrr=110

符號定義

 

算數運算指令

指令

說明

位元組

機械週期

ADD ARn

將暫存器內容加入A累加器

1

1

ADD Adirect

將直接位址內容加入A累加器

2

1

ADD A@Ri

將間接位址內容加入A累加器

1

1

ADD A#data

8位元常數資料加入A累加器

2

1

ADDC ARn

將暫存器與進位CF加入A累加器

1

1

ADDC Adirect

直接位址內容與進位CF加入累加器

2

1

ADDC A@Ri

間接位址內容與進位CF加入累加器

1

1

ADDC A#data

8位元常數資料與進位加入累加器

2

1

SUBB ARn

A累加器內容減暫存器與借位CF

1

1

SUBB Adirect

A累加器內容減直接位址內容與借位

2

1

SUBB A@Ri

A累加器內容減間接位址內容與借位

1

1

SUBB A#data

累加器內容減8位元常數資料與借位

2

1

INC A

A累加器內容加1

1

1

INC Rn

暫存器內容加1

1

1

INC direct

直接位址內容加1

2

1

INC @Ri

間接位址內容加1

1

1

INC DPTR

資料指標DPTR內容加1

1

2

DEC A

A累加器內容減1

1

1

DEC Rn

暫存器內容減1

1

1

DEC direct

直接位址內容減1

2

1

DEC @Ri

間接位址內容減1

1

1

MUL AB

A累加器乘以暫存器B,相乘結果之高8位元存入B,低8位元存入A

1

4

DIV AB

A累加器除以暫存器B,相除結果之商存入A,餘數存入B

1

4

DA A

A累加器內容調整成10進制BCD

1

1

算數運算指令

 邏輯運算指令

指令

說明

位元組

機械週期

ANL ARn

暫存器ANDA累加器內

1

1

ANL Adirect

直接位址內容ANDA累加器內

2

1

ANL A@Ri

間接位址內容ANDA累加器內

1

1

ANL A#data

8位元資料ANDA累加器內

2

1

ANL directA

A累加器內容AND至直接位址內

2

1

ANL direct#data

8位元資料AND至直接位址內

3

2

ORL ARn

暫存器ORA累加器內

1

1

ORL Adirect

直接位址內容ORA累加器內

2

1

ORL A@Ri

間接位址內容ORA累加器內

1

1

ORL A#data

8位元資料ORA累加器內

2

1

ORL directA

A累加器內容OR至直接位址內

2

1

ORL direct#data

8位元資料OR至直接位址內

3

2

XRL ARn

暫存器XORA累加器內

1

1

XRL Adirect

直接位址內容XORA累加器內

2

1

XRL A@Ri

間接位址內容XORA累加器內

1

1

XRL A#data

8位元資料XORA累加器內

2

1

XRL directA

A累加器內容XOR至直接位址內

2

1

XRL direct#data

8位元資料XOR至直接位址內

3

2

CLR A

清除A累加器

1

1

CPL A

A累加器內容取補數

1

1

RL A

A累加器內容向左旋轉1位元

1

1

RLC A

A累加器與進位CF一起左旋1位元

1

1

RR A

A累加器內容向右旋轉1位元

1

1

RRC A

A累加器與進位CF一起右旋1位元

1

1

SWAP A

A累加器的高低4位元互相交換

1

1

邏輯運算指令

 資料轉移指令

指令

說明

位元組

機械週期

MOV ARn

將暫存器內容移入A累加器

1

1

MOV Adirect

將直接位址內容移入A累加器

2

1

MOV A@Ri

暫存器間接位址內容移入A累加器

1

1

MOV A#data

8位元常數資料移入A累加器

2

1

MOV RnA

A累加器內容移入暫存器

1

1

MOV Rndirect

將直接位址內容移入暫存器

2

2

MOV Rn#data

8位元常數資料移入暫存器

2