51微控制器彙編指令詳解

2022-06-12 10:06:03 字數 6153 閱讀 8580

mcs-51系列微控制器指令

以a開頭的指令有18條,分別為:

acall addr11

add a,rn

add a,direct

add a,@ri

add a,#data

addc a,rn

addc a,direct

addc a,@ri

addc a,#data

ajmp addr11

anl a,rn

anl a,direct

anl a,@ri

anl a,#data

anl direct,a

anl direct,#data

anl c,bit

anl c,/bit

1、acall addr11

指令名稱:絕對呼叫指令

指令**:,a[7:0]

指令功能:構造目的位址,進行子程式呼叫。其方法是以指令提供的11位位址(al0~a0),取代pc的低11位,pc的高5位不變。

操作內容:

pc←(pc)+2

sp←(sp)+1

(sp)←(pc)7~0

sp←(sp)+1

(sp)←(pc)15~8

pc10~0←addrl0~0

位元組數: 2

機器週期:2

使用說明:由於指令只給出子程式入口位址的低11位,因此呼叫範圍是2kb。

2、add a,rn

指令名稱:暫存器加法指令

指令**:28h~2fh

指令功能:累加器內容與暫存器內容相加

操作內容:a←(a)+(rn), n=0~7

位元組數: 1

機器週期;1

影響標誌位:c,ac,ov

3、add a,direct

指令名稱:直接定址加法指令

指令**:25h

指令功能:累加器內容與內部ram單元或專用暫存器內容相加

操作內容:a←(a)+(direct)

位元組數: 2

機器週期:1

影響標誌位:c,ac,ov

4、add a,@ri

指令名稱:間接定址加法指令

指令**:26h~27h

指令功能:累加器內容與內部ram低128單元內容相加

操作內容:a←(a)+((ri)), i=0,1

位元組數: 1

機器週期:1

影響標誌位:c,ac,ov

5、add a,#data

指令名稱:立即數加法指令

指令**:24h

指令功能:累加器內容與立即數相加

操作內容:a←(a)+data

位元組數: 2

機器週期:1

影響標誌位:c,ac,ov

6、addc a,rn

指令名稱:暫存器帶進製加法指令

指令**:38h~3fh

指令功能:累加器內容、暫存器內容和進製位相加

操作內容:a←(a)+(rn)+(c), n=0~7

位元組數: 1

機器週期:1

影響標誌位:c,ac,ov

7、addc a,direct

指令名稱:直接定址帶進製加法指令

指令**:35h

指令功能:累加器內容、內部ram低128單元或專用暫存器內容與進製位加

操作內容:a←(a)+(direct)+(c)

位元組數: 2

機器週期:1

影響標誌位:c,ac,ov

8、addc a,@ri

指令名稱:間接定址帶進製加法指令

指令**:36h~37h

指令功能:累加器內容、內部ram低128單元內容及進製位相加

操作內容:a←(a)+((ri))+(c), i=0,1

位元組數: 1

機器週期:1

影響標誌位:c,ac,ov

9、addc a,#data

指令名稱:立即數帶進製加法指令

指令**:34h

指令功能:累加器內容、立即數及進製位相加

操作內容:a←(a)+data+(c)

位元組數: 2

機器週期:1

影響標誌位:c,ac,ov

10、ajmp addr11

指令名稱:絕對轉移指令

指令**:,a[7:0]

指令功能:構造目的位址,實現程式轉移。其方法是以指令提供的11位位址,取代pc的低11位,.而pc的高5位保持不變。

操作內容:pc←(pc)+2

pcl0~0←addrll

位元組數: 2

機器週期:2

使用說明:由於addrll的最小值是000h,最大值是7ffh,因此位址轉移範圍是2kb。

11、anl a,rn

指令名稱:暫存器邏輯與指令

指令**:58h~5fh

指令功能:累加器內容邏輯與暫存器內容

操作內容:a←(a)^(rn), n=0~7

位元組數: 1

機器週期:1

12、anl a,direct

指令名稱:直接定址邏輯與指令

指令**:55h

指令功能:累加器內容邏輯與內部ram低128單元或專用暫存器內容

操作內容:a←(a)^(diret)

位元組數: 2

機器週期:1

13、anl a,@ri

指令名稱:間接定址邏輯與指令

指令**:56h~57h

指令功能:累加器內容邏輯與內部ram低128單元內容

操作內容:a←(a)^((ri)) i=0,1

位元組數: 1

機器週期:1

14、anl a,#data

指令名稱:立即數邏輯與指令

指令**:54h

指令功能:累加器內容邏輯與立即數

操作內容:a←(a)^data

位元組數: 2

機器週期:1

15、anl direct,a

指令名稱:累加器邏輯與指令

指令**:52h

指令功能:內部ram低128單元或專用暫存器內容邏輯與累加器內容

操作內容:direct←(a)^(direct)

位元組數: 2

機器週期:1

16、anl direct, #data

指令名稱:邏輯與指令

指令**:53h

指令功能:內部ram低128單元或專用暫存器內容邏輯與立即數

操作內容:direct←(direct)^data

位元組數: 3

機器週期:2

17、anl c,bit

指令名稱:位邏輯與指令

指令**:82h

指令功能:進製標誌邏輯與直接定址位

操作內容:c←(c)^(bit)

位元組數: 2

機器週期:2

18、anl c,/bit

指令名稱:位邏輯與指令

指令**:b0h

指令功能:進製標誌邏輯與直接定址位的反

操作內容:c←(c)^(bit)

位元組數: 2

機器週期:2

以c開頭的指令有10條,分別為:

cjne a,dircet,rel

cjne a,#data,rel

cjne rn,#data,rel

cjne @ri,#data,rel

clr a

clr c

clr bit

cpl a

cpl c

cpl bit

1、cjne a,dircet,rel

指令名稱:數值比較轉移指令

指令**:b5h

指令功能:累加器內容與內部ram低節或專用暫存器內容比較,不等則轉移。

操作內容:若(a)=(direct),則pc←(pc)+3,c←0

若(a)>(direct),則pc←(pc)+3+rel,c←0

若(a)<(direct),則pc←(pc)+3+rel,c←1

位元組數: 3

機器週期:2

2、cjne a,#data,rel

指令名稱:數值比較轉移指令

指令**:b4h

指令功能:累加器內容與立即數比較,不等則轉移。

操作內容:若(a)=data,則pc←(pc)+3,c←0

若(a)>data,則pc←(pc)+3+rel,c←0

若(a)<data,則pc←(pc)+3+rel,c←1

位元組數: 3

機器週期:2

3、cjne rn,#data,rel

指令名稱:數值比較轉移指令

指令**:b8h~bfh

指令功能:暫存器內容與立即數比較,不等則轉移。

操作內容:若(rn)=data,則pc←(pc)+3,c←0

若(rn)>data,則pc←(pc)+3+rel,c←0

若(rn)<data,則pc←(pc)+3+rel,c←1

位元組數: 3

機器週期:2

4、cjne @ri,#data,rel

指令名稱:數值比較轉移指令

指令**:b6h~b7h

指令功能:內部ram低128單元內容與立即數比較,不等則轉移。

操作內容:若((ri))=data,則pc←(pc)+3,c←0

若((ri))>data,則pc←(pc)+3+rel,c←0

若((ri))<data,則pc←(pc)+3+rel,c←1

位元組數: 3

機器週期:2

5、clr a

指令名稱:累加器清0指令

指令**:e4h

指令功能:累加器清0

操作內容:a←0

位元組數: 1

機器週期:1

6、clr c

指令名稱:進製標誌清0指令

指令**:c3h

指令功能:進製位清0

操作內容:c←0

位元組數: 1

機器週期:1

7、clr bit

指令名稱:直接定址位清0指令

指令**:c2h

指令功能:直接定址位清0

操作內容:bit←0

位元組數: 2

機器週期:1

8、cpl a

指令名稱:累加器取反指令

指令**:f4h

指令功能:累加器取反

操作內容:a←(a)

位元組數: 1

機器週期:1

9、cpl c

指令名稱:進製標誌取反指令

指令**:b3h

指令功能:進製標誌位狀態取反

操作內容:c←(c取反)

位元組數: 1

機器週期:1

10、 cpl bit

指令名稱:直接定址位取反指令

指令**:b2h

指令功能:直接定址位取反

操作內容:bit←(bit取反)

位元組數: 2

機器週期:1

以d開頭的指令有8條,分別為:

da a

dec a

dec rn

dec direct

dec @ri

div ab

djnz rn,rel

djnz direct,rel

1、da a

指令名稱:十進位制調整指令

指令**:d4h

指令功能:對bcd碼加法運算的結果進行有條件的修正

操作內容:若(a)3~0>9|(ac)=1,則a3~0←(a)3~0+6

若(a)7~4>9|(c)=1,則a7~4←(a)7~4+6

若(a)7~4=9^(a)3~0>9,則a7~4←(a)7~4+6

位元組數: 1

機器週期:1

使用說明:da指令不影響溢位標誌

2、dec a

指令名稱:累加器減1指令

指令**:14h

指令功能:累加器內容減1

操作內容:a←(a)-1

位元組數: 1

機器週期:1

3、dec rn

指令名稱:暫存器減1指令

指令**:18h~1fh

指令功能:暫存器內容減1

操作內容:rn←(rn)-1,n=0~7

位元組數: 1

機器週期:1

MCS51微控制器指令大全

以字母的順序排列 a z a 1 acall addr11 指令名稱 絕對呼叫指令 指令 指令功能 構造目的位址,進行子程式呼叫其方法是以指令提供的11位位址 al0 a0 取代pc的低11位,pc的高5位不變。操作內容 pc pc 2 sp sp 1 sp pc 7 0 sp sp 1 sp pc...

MCS 51微控制器指令全總結

1 運算元中有direct data bit的都是2位元組指令 2 在運算元中沒有以上三個變數卻有 標誌的都是1位元組指令 3 凡是3位元組指令的都是兩週期的指令 4 乘除是單位元組四週期的指令 5 位元組呼叫指令 位元組 位轉移指令 位元組 位邏輯指令 進 出棧指令 返回指令 inc dptr m...

微控制器指令速記

51系列微控制器指令快速記憶法 字型 隨著微電子技術和超大規模積體電路技術的發展,單片微型計算機以其體積小 價效比高 功能強 可靠性高等獨有的特點,在各個領域 如工業控制 家電產品 汽車電子 通訊 智慧型儀器儀表 得到了廣泛的應用。學習 使用微控制器的人越來越多,而生產微控制器的廠家很多,微控制器種...