mcs51微控制器的偽指令有哪些,MCS51微控制器的偽指令有哪些?

時間 2021-05-07 20:00:26

1樓:雨人吉他

1、資料傳送類指令

助記符 功能說明 位元組數 振盪週期

mov a,rn 暫存器內容送入累加器 1 12

mov a,direct 直接地址單元中的資料送入累加器 2 12

mov a,@ri 間接ram中的資料送入累加器 1 12

mov a,#data8 8位立即數送入累加器 2 12

mov rn,a 累加器內容送入暫存器 1 12

mov rn,direct 直接地址單元中的資料送入暫存器 2 24

mov rn,#data8 8位立即數送入暫存器 2 12

mov direct,a 累加器內容送入直接地址單元 2 12

mov direct,rn 暫存器內容送入直接地址單元 2 24

mov direct,direct 直接地址單元中的資料送入直接地址單元3 24

mov direct,@ri 間接ram中的資料送入直接地址單元 2 24

mov direct,#data8 8位立即數送入直接地址單元 3 24

mov @ri,a 累加器內容送入間接ram單元 1 12

mov @ri,direct 直接地址單元中的資料送入間接ram單元2 24

mov @ri,#data8 8位立即數送入間接ram單元 2 12

mov dptr,#data16 16位立即數地址送入地址暫存器 3 24

mov a,@a+dptr 以dptr為基地址變址定址單元中的資料送入累加器 1 24

mov a,@a+pc 以pc為基地址變址定址單元中的資料送入累加器 1 24

mov a,@ri 外部ram(8位地址)送入累加器 1 24

mov a,@dptr 外部ram(16位地址)送入累加器 1 24

mov @ri,a 累加器送入外部ram(8位地址) 1 24

mov @dptr,a 累加器送入外部ram(16位地址) 1 24

push direct 直接地址單元中的資料壓入堆疊 2 24

pop direct 堆疊中的資料彈出到直接地址單元 2 24

xch a,rn 暫存器與累加器交換 1 12

xch a,direct 直接地址單元與累加器交換 2 12

xch a,@ri 間接ram與累加器交換 1 12

xchd a,@ri 間接ram與累加器進行低半位元組交換 1 12

2、算術操作類指令

助記符 功能說明 位元組數 振盪週期

add a,rn 暫存器內容加到累加器 1 12

add a,direct 直接地址單元加到累加器 2 12

add a,@ri 間接ram內容加到累加器 1 12

add a,#data8 8位立即數加到累加器 2 12

addc a,rn 暫存器內容帶進位加到累加器 1 12

addc a,dirct 直接地址單元帶進位加到累加器 2 12

addc a,@ri 間接ram內容帶進位加到累加器 1 12

addc a,#data8 8位立即數帶進位加到累加器 2 12

subb a,rn 累加器帶借位減暫存器內容 1 12

subb a,dirct 累加器帶借位減直接地址單元 2 12

subb a,@ri 累加器帶借位減間接ram內容 1 12

subb a,#data8 累加器帶借位減8位立即數 2 12

inc a 累加器加1 1 12

inc rn 暫存器加1 1 12

inc direct 直接地址單元內容加1 2 12

inc @ri 間接ram內容加1 1 12

inc dptr dptr加1 1 24

dec a 累加器減1 1 12

dec rn 暫存器減1 1 12

dec direct 直接地址單元內容減1 2 12

dec @ri 間接ram內容減1 1 12

mul a,b a乘以b 1 48

div a,b a除以b 1 48

da a 累加器進行十進位制轉換 1 12

3、邏輯操作類指令

助記符 功能說明 位元組數 振盪週期

anl a,rn 累加器與暫存器相「與」 1 12

anl a,direct 累加器與直接地址單元相「與」 2 12

anl a,@ri 累加器與間接ram內容相「與」 1 12

anl a,#data8 累加器與8位立即數相「與」 2 12

anl direct,a 直接地址單元與累加器相「與」 2 12

anl direct,#data8 直接地址單元與8位立即數相「與」 3 24

orl a,rn 累加器與暫存器相「或」 1 12

orl a,direct 累加器與直接地址單元相「或」 2 12

orl a,@ri 累加器與間接ram內容相「或」 1 12

orl a,#data8 累加器與8位立即數相「或」 2 12

orl direct,a 直接地址單元與累加器相「或」 2 12

orl direct,#data8 直接地址單元與8位立即數相「或」 3 24

xrl a,rn 累加器與暫存器相「異或」 1 12

xrl a,direct 累加器與直接地址單元相「異或」 2 12

xrl a,@ri 累加器與間接ram內容相「異或」 1 12

xrl a,#data8 累加器與8位立即數相「異或」 2 12

xrl direct,a 直接地址單元與累加器相「異或」 2 12

xrl direct,#data8 直接地址單元與8位立即數相「異或」 3 24

clr a 累加器清0 1 12

cpl a 累加器求反 1 12

rl a 累加器迴圈左移 1 12

rlc a 累加器帶進位迴圈左移 1 12

rr a 累加器迴圈右移 1 12

rrc a 累加器帶進位迴圈右移 1 12

swap a 累加器半位元組交換 1 12

4、控制轉移類指令

助記符 功能說明 位元組數 振盪週期

acall addr11 絕對短呼叫子程式 2 24

lacll addr16 長呼叫子程式 3 24

ret 子程式返回 1 24

reti 中斷返回 1 24

ajmp addr11 絕對短轉移 2 24

ljmp addr16 長轉移 3 24

sjmp rel 相對轉移 2 24

jmp @a+dptr 相對於dptr的間接轉移 1 24

jz rel 累加器為零轉移 2 24

jnz rel 累加器非零轉移 2 24

cjne a,direct,rel 累加器與直接地址單元比較,不等則轉移 3 24

cjne a,#data8,rel 累加器與8位立即數比較,不等則轉移 3 24

cjne rn,#data8,rel 暫存器與8位立即數比較,不等則轉移(相等則執行本指令的下一條) 3 24

cjne @ri,#data8,rel 間接ram單元,不等則轉移(但有時還想得知兩數比較之後哪個大,哪個小,本條指令也具有這樣的功能,如果兩數不相等,則cpu還會反映出哪個數大,哪個 數小,這是用cy(進位位)來實現的。如果前面的數(a中的)大,則cy=0,否則cy=1) 3 24

djnz rn,rel 暫存器減1,非零轉移 3 24

djnz direct,rel 直接地址單元減1,非零轉移 3 24

nop 空操作 1 12

控制轉移指令共有17條,可分為「無條件轉移指令」 「有條件轉移指令」 「子程式呼叫指令」 及 「返回指令」。

5、布林變數操作類指令

助記符 功能說明 位元組數 振盪週期

clr c 清進位位 1 12

clr bit 清直接地址位 2 12

setb c 置進位位 1 12

setb bit 置直接地址位 2 12

cpl c 進位位求反 1 12

cpl bit 直接地址位求反 2 12

anl c,bit 進位位和直接地址位相「與」 2 24

anl c,bit 進位位和直接地址位的反碼相「與」 2 24

orl c,bit 進位位和直接地址位相「或」 2 24

orl c,bit 進位位和直接地址位的反碼相「或」 2 24

mov c,bit 直接地址位送入進位位 2 12

mov bit,c 進位位送入直接地址位 2 24

jc rel 進位位為1則轉移(cy=o不轉移,=1轉移) 2 24

jnc rel 進位位為0則轉移(和上面相反) 2 24

jb bit,rel 直接地址位為1則轉移 3 24

jnb bit,rel 直接地址位為0則轉移 3 24

jbc bit,rel 直接地址位為1則轉移,該位清零 3 24

偽指令助記符 功能說明 位元組數 振盪週期

org 設定程式起始地址

end 標誌源**結束

equ 定義常數

set 定義整型數

data 給位元組型別符號定值

byte 給位元組型別符號定值

wrod 給字型別符號定值

bit 給位地址取名

altname 用自定義名取代保留字

db 給一塊連續的儲存區裝載位元組型資料

dw 給一塊連續的儲存區裝載字型資料

ds 預留一個連續的儲存區或裝入指定位元組。

include 將一個原始檔插入程式中 i

title 列表檔案中加入標題行

nolist 彙編時不產生列表檔案

nocode 條件彙編時,條件為假的不產生清單

暫存器:

符號 地址 功能介紹

b f0h b暫存器

acc e0h 累加器

psw d0h 程式狀態字

ip b8h 中斷優先順序控制暫存器

p3 b0h p3口鎖存器

ie a8h 中斷允許控制暫存器

p2 a0h p2口鎖存器

sbuf 99h 序列口鎖存器

scon 98h 序列口控制暫存器

p1 90h p1口鎖存器

th1 8dh 定時器/計數器1(高8位)

th0 8ch 定時器/計數器1(低8位)

tl1 8bh 定時器/計數器0(高8位)

tl0 8ah 定時器/計數器0(低8位)

tmod 89a 定時器/計數器方式控制暫存器

tcon 88h 定時器/計數器控制暫存器

dph 83h 資料地址指標(高8位)

dpl 82h 資料地址指標(低8位)

sp 81h 堆疊指標

p0 80h p0口鎖存器

pcon 87h 電源控制暫存器

MCS 51微控制器的中斷問題,MCS 51微控制器問題?

中斷系統中有兩個 使用者不能使用的 優先順序狀態觸發器 其中一個,置1時,表示正在執行高優先順序的中斷,遮蔽所有中斷請求 還有一個,置1時,表示正在執行低優先順序的中斷,遮蔽同級中斷請求.明白了吧?其實就是說這兩個觸發器,是使用者無法訪問到的,是內建且自動賦值的.一旦有高優先順序的中斷執行了,第一個...

求基於MCS 51系列微控制器AT89C51,設計8路搶答

org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 001bh ajmp t1int ok equ 20h 搶答開始標誌位 ring equ 22h 響鈴標誌位 org 0040h main mov r1,0fh 初...

間述MCS 51微控制器的中斷響應過程

產生中斷訊號,發出中斷申請,響應中斷,進入中斷服務程式,中斷返回 2 簡述mcs 51微控制器的中斷響應過程 正在看書是 響了,暫停看書,去接 接完 從剛才的地方繼續看書!這個過程就是中斷響應的過程!而且呼叫方是否是美女直接影響中斷響應級別! 心銥 中斷,無非就是你正在執行當前 程式的時候有中斷條件...