8051單片機匯編指令速查表詳解_第1頁
8051單片機匯編指令速查表詳解_第2頁
8051單片機匯編指令速查表詳解_第3頁
8051單片機匯編指令速查表詳解_第4頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、8051 系列單片機匯編語言指令速查表編號指令名稱指令助記符指令說明數(shù)據(jù)傳送類指令 (29 條 )12345678一般傳送910111213141516 目的地址傳送171819字節(jié)交換20212223與外部 RAM 傳送2425MOV A, #dataMOV direct, #data Mov Rn , #dataMov Ri, #dataMov direct2, direct1Mov direct, rnMov Rn, directMov direct, RiMov Ri, directMov A, RnMov Rn, AMov A, directMov direct, AMov A, R

2、iMov Ri , AMov DPTR, #data16SWAP AXCH A, RnXCH A, directXCH A, RiXCHD A, RiMOVX DPTR, AMOVX A , DPTRMOVX A, RiMOVX Ri, A將立即數(shù) #data 送累加器A將立即數(shù) #data 送片內(nèi) RAM direct 地址單元內(nèi)將立即數(shù) #data 送寄存器Rn寄存器 Ri 內(nèi)為 RAM 地址,將立即數(shù)#data 送該地址單元內(nèi)將 direct1 地址單元的數(shù)據(jù)送direct2 地址單元內(nèi)將 Rn 的數(shù)據(jù)送direct 地址單元內(nèi)將 direct 地址單元內(nèi)的數(shù)據(jù)送Rn 寄存器寄存器 Ri

3、 內(nèi)為 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)送direct 地址單元內(nèi)寄存器 Ri 內(nèi)為 RAM 地址,將 direct 地址單元內(nèi)的數(shù)據(jù)送該地址單元內(nèi)將寄存器Rn 內(nèi)的數(shù)據(jù)送累加器A將累加器A 內(nèi)的數(shù)據(jù)送寄存器Rn將 direct 地址單元內(nèi)的數(shù)據(jù)送累加器A將累加器 A 內(nèi)的數(shù)據(jù)送direct 地址單元內(nèi)寄存器 Ri 內(nèi)為 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)送累加器 A寄存器 Ri 內(nèi)為 RAM 地址,將累加器 A 的數(shù)據(jù)送該地址單元內(nèi)將 16 位立即數(shù)送數(shù)據(jù)指針 DPTR 寄存器累加器 A 高低 4 位數(shù)據(jù)交換將累加器 A 數(shù)據(jù)和寄存器 Rn 內(nèi)的數(shù)據(jù)交換將累加器 A 數(shù)據(jù)和 direct

4、地址單元內(nèi)的數(shù)據(jù)交換寄存器 Ri 內(nèi)為 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器 A 的數(shù)據(jù)交換寄存器 Ri 內(nèi)為 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)低 4 位與的低 4 位交換將累加器A 的數(shù)據(jù)送數(shù)據(jù)指針DPTR 寄存器所指外部 RAM 地址單元內(nèi)將 DPTR 寄存器所指外部 RAM 地址單元內(nèi)的數(shù)據(jù)送累加器 A寄存器 Ri 內(nèi)為片外 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)送累加器 A寄存器 Ri 內(nèi)為片外RAM 地址,將該地址單元內(nèi)的數(shù)26與 ROM 傳送2728棧操作293031加法指令32333435帶進位加法36373839帶借位減法4041424344 加 1指令45464748 減

5、 1指令49據(jù)送累加器 AMOVC A, A+DPTRA+DPTR 構(gòu)成 ROM 地址,將該地址內(nèi)的數(shù)據(jù)送累加器 A 內(nèi)MOVC A, A+PCA+PC 構(gòu)成 ROM 地址,將該地址內(nèi)的數(shù)據(jù)送累加器A 內(nèi)PUSH direct堆棧指針 SP 自加 1 后,將 direct 地址單元的數(shù)據(jù)壓進堆棧,POP direct堆棧的數(shù)據(jù)送 direct 地址單元中,后堆棧指針減1,算術(shù)運算指令 (24 條 )ADD A, Rn將寄存器 Rn 與累加器 A 的數(shù)據(jù)相加后 ,結(jié)果保存到累加器 AADD A, direct將 direct 地址單元內(nèi)的數(shù)據(jù)與累加器A 的數(shù)據(jù)相加后結(jié)果保存到累加器 AADD A

6、, Ri寄存器 Ri 內(nèi)位地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器 A 的數(shù)據(jù)相加后結(jié)果保存到累加器AADD A, #data將立即數(shù)與累加器 A 的數(shù)據(jù)相加后結(jié)果保存到累加器 AADDC A, Rn將寄存器 Rn 與累加器 A 的數(shù)據(jù)相加,再加上進位標志內(nèi)的值后 ,結(jié)果保存到累加器 AADDC A, direct將 direct 地址單元內(nèi)的數(shù)據(jù)與累加器A 的數(shù)據(jù)相加,再加上進位標志內(nèi)的值后,結(jié)果保存到累加器A寄存器 Ri 內(nèi)為 RAM 地址,將該地址單元內(nèi)的數(shù)據(jù)與ADDC A, Ri累加器 A 的數(shù)據(jù)相加, 再加上進位標志內(nèi)的值后,結(jié)果保存到累加器 AADDC A, #data將立即數(shù)與累加器

7、A 的數(shù)據(jù)相加, 再加上進位標志內(nèi)的值后結(jié)果保存到累加器ASUBB A, Rn將與累加器 A 的數(shù)據(jù)減去寄存器 Rn 的數(shù)據(jù), 再減去進位標志內(nèi)的值,結(jié)果保存到累加器ASUBB A, direct將與累加器 A 的數(shù)據(jù)減去 direct 地址單元內(nèi)的數(shù)據(jù),再減去進位標志內(nèi)的值,結(jié)果保存到累加器A寄存器 Ri 內(nèi)為 RAM 地址,將累加器A 的數(shù)據(jù)減去SUBB A, Ri該地址單元內(nèi)的數(shù)據(jù),再減去進位標志內(nèi)的值后,結(jié)果保存到累加器 ASUBB A, #data將累加器 A 的數(shù)據(jù)減去立即數(shù), 再減去進位標志內(nèi)的值后,結(jié)果保存到累加器AINC A累加器 A 的值自加 1INC Rn寄存器 Rn 的

8、值自加 1INC directdirect 地址單元內(nèi)值自加1INC Ri寄存器 Ri 內(nèi)為 RAM 地址,該地址單元內(nèi)的值自加1INC DPTR數(shù)據(jù)指針寄存器 DPTR 內(nèi)的值自加 1DEC A累加器 A 的值自減 1DEC Rn寄存器 Rn 的值自減 1DEC directdirect 地址單元內(nèi)的值自減150DEC Ri寄存器 Ri 內(nèi)為 RAM 地址,該地址單元內(nèi)的值自減151乘法MUL AB累加器 A 與寄存器 B 內(nèi)的值相乘,乘積的高8 位保存在 B 寄存器,低 8位保存在累加器A 中52除法DIV AB累加器 A 的值除以寄存器B 的值,商保存在累加器A中,余數(shù)保存在 B 寄存器

9、53二 -十進制調(diào)整DA A對累加器 A 的結(jié)果進行十進制調(diào)整邏輯運算指令 (29 條 )54ANL A, Rn將累加器 A 的值和寄存器Rn 的值進行與操作,結(jié)果保存到累加器 A 中55ANL A, direct將累加器 A 的值和 direct 地址單元內(nèi)的值進行與操作,結(jié)果保存到累加器A 中56ANL A, Ri寄存器 Ri 內(nèi)為 RAM 地址 ,將累加器 A 的值和該地址單元內(nèi)的值進行與操作,結(jié)果保存到累加器A 中邏輯與將累加器 A 的值和立即數(shù)進行與操作, 結(jié)果保存到累57ANL A, #data加器 A中58ANL direct, A將累加器 A 的值和 direct 地址單元內(nèi)的

10、值進行與操作,結(jié)果保存到direct 地址單元內(nèi)59ANL direct, #data將立即數(shù)和 direct 地址單元內(nèi)的值進行與操作,結(jié)果保存到 direct 地址單元內(nèi)60ORL A, Rn將累加器 A 的值和寄存器Rn 的值進行或操作,結(jié)果保存到累加器 A 中61ORL A, direct將累加器 A 的值和 direct 地址單元內(nèi)的值進行或操作,結(jié)果保存到累加器A 中62ORL A, Ri寄存器 Ri 內(nèi)為 RAM 地址 ,將累加器 A 的值和該地址單元內(nèi)的值進行或操作,結(jié)果保存到累加器A 中邏輯或?qū)⒗奂悠?A 的值和立即數(shù)進行或操作, 結(jié)果保存到累63ORL A, #data加器

11、 A中64ORL direct, A將累加器 A 的值和 direct 地址單元內(nèi)的值進行或操作,結(jié)果保存到direct 地址單元內(nèi)65ORL direct, #data將立即數(shù)和 direct 地址單元內(nèi)的值進行或操作,結(jié)果保存到 direct 地址單元內(nèi)66XRL A, Rn將累加器 A 的值和寄存器Rn 的值進行異或操作, 結(jié)果保存到累加器 A 中67XRL A, direct將累加器 A 的值和 direct 地址單元內(nèi)的值進行異或操作,結(jié)果保存到累加器A 中68XRL A, Ri寄存器 Ri 內(nèi)為 RAM 地址 ,將累加器 A 的值和該地址單元內(nèi)的值進行異或操作,結(jié)果保存到累加器A

12、中邏輯異或?qū)⒗奂悠?A 的值和立即數(shù)進行異或操作, 結(jié)果保存到69XRL A, #data累加器 A中70XRL direct, A將累加器 A 的值和 direct 地址單元內(nèi)的值進行異或操作,結(jié)果保存到direct 地址單元內(nèi)71XRL direct, #data將立即數(shù)和 direct 地址單元內(nèi)的值進行異或操作,結(jié)果保存到 direct 地址單元內(nèi)72按位取反CPL A累加器 A 的值按位取反7374757677累加器清零邏輯右移邏輯左移帶進位右移帶進位左移CLRA累加器 A清0RRA累加器 A 的值循環(huán)右移1 位RLA累加器 A 的值循環(huán)左移1 位RRCA累加器 A 的值帶進位循環(huán)右

13、移1 位RLCA累加器 A 的值帶進位循環(huán)左移1 位控制轉(zhuǎn)移指令(17 條)78798081828384858687888990919293949596無條件轉(zhuǎn)移條件轉(zhuǎn)移循環(huán)轉(zhuǎn)移布爾條件轉(zhuǎn)移調(diào)用指令SJMP relAJMP addr11(a10- a0)LJMP addr16JMP A+DPTRJZ relJNZrelCJNE A, direct, relCJNE A, #data, relCJNE Rn, #data, relCJNE Ri, #data, relDJNZ Rn, relDJNZ direct, relJCrelJNCrelJB bit, relJNB bit, relJBC

14、 bit, relACALL addr11LCALLaddr16rel 為地址偏移量, PC 加 2 后的地址加上 rel 作為目標地址,程序跳到目標地址繼續(xù)運行addr11 為 11 位地址, PC 加 2 后的地址高 5 位與指令中的低 11 位地址構(gòu)成目標地址,程序跳到目標地址繼續(xù)運行將 addr16 的 16 位地址送程序計數(shù)器PC,使機器執(zhí)行下一條指令時無條件轉(zhuǎn)移到 addr16 處執(zhí)行程序目標地址的基地址放在 DPTR 中,目標地址對基地址的偏移量放在累加器 A 中,它們相加構(gòu)成目標地址If(累加器A=0 )則 PC 加 2 再加上 rel 作為目標地址If (累加器 A!=0 )

15、則 PC 加 2 再加上 rel 作為目標地址If(累加器 A!= direct 地址單元的值) 則 PC 加 2 再加上 rel 作為目標地址If (累加器 A!= 立即數(shù))則 PC 加 2 再加上 rel 作為目標地址If (寄存器 Rn 的值 != 立即數(shù))則 PC 加 2 再加上 rel 作為目標地址寄存器 Ri 內(nèi)為 RAM 地址, If(該地址單元的值 != 立即數(shù))則 PC 加 2 再加上 rel 作為目標地址寄存器 Rn 的值減 1 后, If (寄存器 Rn 的值 !=0 )則 PC 加 2 再加上 rel 作為目標地址Direct 地址單元的值減 1 后, If (該值 !

16、=0 )則 PC 加 3 再加上 rel 作為目標地址If ( CY=1 )則 PC 加 2 再加上 rel 作為目標地址If ( CY=0 )則 PC 加 2 再加上 rel 作為目標地址If ( bit 位 =1)則 PC 加 3 再加上 rel 作為目標地址If ( bit 位 =0)則 PC 加 3 再加上 rel 作為目標地址If ( bit 位 =1)則 PC 加 3 再加上 rel 作為目標地址,且 bit 位清 0addr11 為 11 位地址,PC 加 2 后的地址 PUSH 進堆棧,再將 PC 的地址高 5 位與指令中的低 11 位地址構(gòu)成目標地址,程序跳到目標地址繼續(xù)運行

17、PC 加 3 后的地址PUSH 進堆棧,再將16 位地址送PC 作為目標地址,程序跳到目標地址繼續(xù)運行97返回指令子程序返回指令,把堆棧中的地址恢復(fù)到PC 中使程RET序回到調(diào)用處98RETI中斷程序返回指令,把堆棧中的地址恢復(fù)到PC 中使程序回到調(diào)用處99空操作NOP空操作位操作指令 (17 條 )100布爾傳送MOV C, bit將 bit 位地址中的值送PSW 中的進位標志位CY101MOV bit, C將 PSW 中的進位標志位CY 的值送 bit 位地址中102位清 0CLRC將進位標志位CY清0103位清 0CLRbit將 bit 位地址內(nèi)清 0104位置 1SETB C將進位標志

18、位CY置1105SETB bit將 bit 位地址內(nèi)置 1106ANL C, bit將 Cy 和 bit 位地址中的值進行與操作后,結(jié)果送Cy107位與ANL C, /bitbit 位地址中的值取反后再與Cy 進行與操作, 結(jié)構(gòu)送Cy108ORL C, bit將 Cy 和 bit 位地址中的值進行或操作后,結(jié)果送Cy109位或ORL C, /bitbit 位地址中的值取反后再與Cy 進行或操作, 結(jié)構(gòu)送Cy110位取反CPLC將 Cy 取反111CPLbit將 bit 位地址的值取反說明:1)Ri, Rn 指當(dāng)前工作寄存器, i ,n = 0 7,當(dāng)前工作寄存器由程序狀態(tài)字寄存器PSW 的 2

19、 個位 RS1, RS0決定MCS 51 使用匯編語言指令,它共有44 個操作碼助記符,33 種功能,其操作數(shù)有data、direct 、Rn、Ri 等。這里介紹指令助記符及其相關(guān)符號的記憶方法。一、助記符號的記憶方法1 、表格列舉法把 44 個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結(jié)。2 、英文還原法單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助于理解其助記符含義,從而加強記憶。例如:增量 INC Incremect 減量 DNC Decrement短轉(zhuǎn)移 SJMP Short jump長轉(zhuǎn)移 LJMP Long jump比較轉(zhuǎn)移 C

20、JNE Compare jump not equality絕對轉(zhuǎn)移 AJMP Absolute jump空操作 NOPNo operation交換 XCH Exchange加法 ADD Addition乘法 MUL Multiplication除法 DIV Division左環(huán)移 RL Rotate left進位左環(huán)移RLC Rotate left carry右環(huán)移 RR Rotate right進位右環(huán)移 RRC Rotate right carry3 、功能模塊記憶法單片機的 44 個指令助記符,按所屬指令功能可分為五大類,每類又可以按功能相似原則為 2 3 組。這樣,化整為零,各個擊破,

21、實現(xiàn)快速記憶。1)數(shù)據(jù)傳送組。MOV內(nèi)部數(shù)據(jù)傳送MOVC程序存儲器傳送MOVX外部數(shù)據(jù)傳送3)邏輯運算組。ANL邏輯與ORL 邏輯或XRL 邏輯異或二、指令的記憶方法1 、指令操作數(shù)的有關(guān)符號2)加減運算組ADD加法ADDC帶進位加法SUBB帶進位減法4)子程序調(diào)用組。LCALL長調(diào)用ALALL絕對調(diào)用RET 子程序返回MCS 51 的尋址方式共有七種:立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間址、變址尋址、相對尋址、位尋址。我們必須掌握其表示的方法。1)立即數(shù)與直接地址。data 表示八位立即數(shù),data16 表示是十六位立即數(shù),data 或direct 表示直接地址。2)Rn(n=0-7)

22、 、 A 、 B、 CY 、 DPTR 寄存器尋址變量。3)R0、 R1 、 DPTR 、SP 表示寄存器間址變量。4)DPTR A 、 PCA 表示變址尋址的變量。5)PC rel(相對量)表示相對尋址變量。記住指令的助記符,掌握不同尋址方式的指令操作數(shù)的表示方法,為我們記憶匯編指令打下了基礎(chǔ)。MCS 51 指令雖多,但按功能可分為五類,其中數(shù)據(jù)傳送類28 條,算術(shù)運算類24 條,邏輯操作類25 條,控制轉(zhuǎn)移類17 條,布爾位操作類17 條。在每類指令里,根據(jù)其功能,抓住其源、目的操作數(shù)的不同組合,再輔之以下方法,是完全能記住的。我們約定,可能的目的操作數(shù)按(data/direct/A/Rn/Ri )順序表示。對于MOV指令,其目的操作數(shù)按A 、Rn、direct 、Ri的順序書寫, 則可以記住MOV的15 條指令。例如以累加器A 為目的操作數(shù),可寫出如下4 條指令。MOV A , data/direct/A/Rn/Ri以此類推,寫出其它指令。MOV Rn , data/direct/AMOV direct , data/direct/A/Rn/RiMOV Ri , data/direct/A2 、指令圖示記憶法圖示記憶法是把操作功能相同或相似、但其操作數(shù)不同的指令,用圖形和箭頭將目的、源操作數(shù)的關(guān)系表示出來的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論