




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、8051系列單片機匯編語言指令速查表編號指令名稱指令助記符指令說明數(shù)據(jù)傳送類指令(29條)1一般傳送MOV A, #data將立即數(shù)#data送累加器A2MOV direct, #data將立即數(shù)#data送片內(nèi)RAM direct地址單元內(nèi)3Mov Rn, #data將立即數(shù)#data送寄存器Rn4Mov Ri, #data寄存器Ri內(nèi)為RAM地址,將立即數(shù)#data送該地址單元內(nèi)5Mov direct2, direct1將direct1地址單元的數(shù)據(jù)送 direct2地址單元內(nèi)6Mov direct, rn將Rn的數(shù)據(jù)送 direct地址單元內(nèi)7Mov Rn, direct將direct地
2、址單元內(nèi)的數(shù)據(jù)送Rn寄存器8Mov direct, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)送direct地址單元內(nèi)9Mov Ri, direct寄存器Ri內(nèi)為RAM地址,將direct地址單元內(nèi)的數(shù)據(jù)送該地址單元內(nèi)10Mov A, Rn將寄存器Rn內(nèi)的數(shù)據(jù)送累加器A11Mov Rn, A將累加器A內(nèi)的數(shù)據(jù)送寄存器Rn12Mov A, direct將direct地址單元內(nèi)的數(shù)據(jù)送累加器A13Mov direct, A將累加器A內(nèi)的數(shù)據(jù)送direct地址單元內(nèi)14Mov A, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)送累加器A15Mov Ri , A寄存器Ri內(nèi)為RAM地址,
3、將累加器A的數(shù)據(jù)送該地址單元內(nèi)16目的地址傳送Mov DPTR, #data16將16位立即數(shù)送數(shù)據(jù)指針DPTR寄存器17字節(jié)交換SWAP A累加器A高低4位數(shù)據(jù)交換18XCH A, Rn將累加器A數(shù)據(jù)和寄存器Rn內(nèi)的數(shù)據(jù)交換19XCH A, direct將累加器A數(shù)據(jù)和direct地址單元內(nèi)的數(shù)據(jù)交換20XCH A, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)交換21XCHD A, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)低4位與的低4位交換22與外部RAM傳送MOVX DPTR, A將累加器A的數(shù)據(jù)送數(shù)據(jù)指針DPTR寄存器所指外部RAM地址單元內(nèi)23MOV
4、X A , DPTR將DPTR寄存器所指外部RAM地址單元內(nèi)的數(shù)據(jù)送累加器A24MOVX A, Ri寄存器Ri內(nèi)為片外RAM地址,將該地址單元內(nèi)的數(shù)據(jù)送累加器A25MOVX Ri, A寄存器Ri內(nèi)為片外RAM地址,將該地址單元內(nèi)的數(shù)據(jù)送累加器A26與ROM傳送MOVC A, A+DPTRA+DPTR構(gòu)成ROM地址,將該地址內(nèi)的數(shù)據(jù)送累加器A內(nèi)27MOVC A, A+PCA+PC構(gòu)成ROM地址,將該地址內(nèi)的數(shù)據(jù)送累加器A內(nèi)28棧操作PUSH direct堆棧指針SP自加1后,將direct地址單元的數(shù)據(jù)壓進堆棧,29POP direct堆棧的數(shù)據(jù)送direct地址單元中,后堆棧指針減1,算術(shù)運算
5、指令(24條)30加法指令A(yù)DD A, Rn將寄存器Rn與累加器A的數(shù)據(jù)相加后,結(jié)果保存到累加器A31ADD A, direct將direct地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加后結(jié)果保存到累加器A32ADD A, Ri寄存器Ri內(nèi)位地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加后結(jié)果保存到累加器A33ADD A, #data將立即數(shù)與累加器A的數(shù)據(jù)相加后結(jié)果保存到累加器A34帶進位加法ADDC A, Rn將寄存器Rn與累加器A的數(shù)據(jù)相加,再加上進位標(biāo)志內(nèi)的值后,結(jié)果保存到累加器A35ADDC A, direct將direct地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加,再加上進位標(biāo)志內(nèi)的值后,結(jié)果保
6、存到累加器A36ADDC A, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加,再加上進位標(biāo)志內(nèi)的值后,結(jié)果保存到累加器A37ADDC A, #data將立即數(shù)與累加器A的數(shù)據(jù)相加,再加上進位標(biāo)志內(nèi)的值后結(jié)果保存到累加器A38帶借位減法SUBB A, Rn將與累加器A的數(shù)據(jù)減去寄存器Rn的數(shù)據(jù),再減去進位標(biāo)志內(nèi)的值,結(jié)果保存到累加器A39SUBB A, direct將與累加器A的數(shù)據(jù)減去direct地址單元內(nèi)的數(shù)據(jù),再減去進位標(biāo)志內(nèi)的值,結(jié)果保存到累加器A40SUBB A, Ri寄存器Ri內(nèi)為RAM地址,將累加器A的數(shù)據(jù)減去該地址單元內(nèi)的數(shù)據(jù),再減去進位標(biāo)志內(nèi)的值后,結(jié)
7、果保存到累加器A41SUBB A, #data將累加器A的數(shù)據(jù)減去立即數(shù),再減去進位標(biāo)志內(nèi)的值后,結(jié)果保存到累加器A42加1指令I(lǐng)NC A累加器A的值自加143INC Rn寄存器Rn的值自加144INC directdirect地址單元內(nèi)值自加145INC Ri寄存器Ri內(nèi)為RAM地址,該地址單元內(nèi)的值自加146INC DPTR數(shù)據(jù)指針寄存器DPTR內(nèi)的值自加147減1指令DEC A累加器A的值自減148DEC Rn寄存器Rn的值自減149DEC directdirect地址單元內(nèi)的值自減150DEC Ri寄存器Ri內(nèi)為RAM地址,該地址單元內(nèi)的值自減151乘法MUL AB累加器A與寄存器B內(nèi)
8、的值相乘,乘積的高8位保存在B寄存器,低8位保存在累加器A中52除法DIV AB累加器A的值除以寄存器B的值,商保存在累加器A中,余數(shù)保存在B寄存器53二-十進制調(diào)整DA A對累加器A的結(jié)果進行十進制調(diào)整邏輯運算指令(29條)54邏輯與ANL 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中57ANL A, #data將累加器A的值和立即數(shù)進行與操作,結(jié)果保
9、存到累加器A中58ANL direct, A將累加器A的值和direct地址單元內(nèi)的值進行與操作,結(jié)果保存到direct地址單元內(nèi)59ANL direct, #data將立即數(shù)和direct地址單元內(nèi)的值進行與操作,結(jié)果保存到direct地址單元內(nèi)60邏輯或ORL 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中63ORL A, #data將累加器A的值和立
10、即數(shù)進行或操作,結(jié)果保存到累加器A中64ORL direct, A將累加器A的值和direct地址單元內(nèi)的值進行或操作,結(jié)果保存到direct地址單元內(nèi)65ORL direct, #data將立即數(shù)和direct地址單元內(nèi)的值進行或操作,結(jié)果保存到direct地址單元內(nèi)66邏輯異或XRL 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中69XRL A,
11、 #data將累加器A的值和立即數(shù)進行異或操作,結(jié)果保存到累加器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的值按位取反73累加器清零CLR A累加器A清074邏輯右移RR A累加器A的值循環(huán)右移1位75邏輯左移RL A累加器A的值循環(huán)左移1位76帶進位右移RRC A累加器A的值帶進位循環(huán)右移1位77帶進位左移RLC A累加器A的值帶進位循環(huán)左移1位控制轉(zhuǎn)移指令(17條
12、)78無條件轉(zhuǎn)移SJMP relrel為地址偏移量,PC加2后的地址加上rel作為目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運行79AJMP addr11(a10- a0)addr11為11位地址,PC加2后的地址高5位與指令中的低11位地址構(gòu)成目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運行80LJMP addr16將addr16的16位地址送程序計數(shù)器PC,使機器執(zhí)行下一條指令時無條件轉(zhuǎn)移到addr16處執(zhí)行程序81JMP A+DPTR目標(biāo)地址的基地址放在DPTR中,目標(biāo)地址對基地址的偏移量放在累加器A中,它們相加構(gòu)成目標(biāo)地址82條件轉(zhuǎn)移JZ relIf(累加器A=0)則PC加2再加上rel作為目標(biāo)地址83JNZ
13、relIf(累加器A!=0)則PC加2再加上rel作為目標(biāo)地址84CJNE A, direct, relIf(累加器A!= direct地址單元的值)則PC加2再加上rel作為目標(biāo)地址85CJNE A, #data, relIf(累加器A!= 立即數(shù))則PC加2再加上rel作為目標(biāo)地址86CJNE Rn, #data, relIf(寄存器Rn的值!= 立即數(shù))則PC加2再加上rel作為目標(biāo)地址87CJNE Ri, #data, rel寄存器Ri內(nèi)為RAM地址,If(該地址單元的值!= 立即數(shù))則PC加2再加上rel作為目標(biāo)地址88循環(huán)轉(zhuǎn)移DJNZ Rn, rel寄存器Rn的值減1后,If(寄存
14、器Rn的值!=0)則PC加2再加上rel作為目標(biāo)地址89DJNZ direct, relDirect地址單元的值減1后,If(該值!=0)則PC加3再加上rel作為目標(biāo)地址90布爾條件轉(zhuǎn)移JC relIf(CY=1)則PC加2再加上rel作為目標(biāo)地址91JNC relIf(CY=0)則PC加2再加上rel作為目標(biāo)地址92JB bit, relIf(bit位=1)則PC加3再加上rel作為目標(biāo)地址93JNB bit, relIf(bit位=0)則PC加3再加上rel作為目標(biāo)地址94JBC bit, relIf(bit位=1)則PC加3再加上rel作為目標(biāo)地址,且bit位清095調(diào)用指令A(yù)CALL
15、 addr11addr11為11位地址,PC加2后的地址PUSH進堆棧,再將PC的地址高5位與指令中的低11位地址構(gòu)成目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運行96LCALL addr16PC加3后的地址PUSH進堆棧,再將16位地址送PC作為目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運行97返回指令RET子程序返回指令,把堆棧中的地址恢復(fù)到PC中使程序回到調(diào)用處98RETI中斷程序返回指令,把堆棧中的地址恢復(fù)到PC中使程序回到調(diào)用處99空操作NOP空操作位操作指令(17條)100布爾傳送MOV C, bit將bit位地址中的值送PSW中的進位標(biāo)志位CY101MOV bit, C將PSW中的進位標(biāo)志位CY的值送b
16、it位地址中102位清0CLR C將進位標(biāo)志位CY清0103位清0CLR bit將bit位地址內(nèi)清0104位置1SETB C將進位標(biāo)志位CY置1105SETB bit將bit位地址內(nèi)置1106位與ANL C, bit將Cy和bit位地址中的值進行與操作后,結(jié)果送Cy107ANL C, /bitbit位地址中的值取反后再與Cy進行與操作,結(jié)構(gòu)送Cy108位或ORL C, bit將Cy和bit位地址中的值進行或操作后,結(jié)果送Cy109ORL C, /bitbit位地址中的值取反后再與Cy進行或操作,結(jié)構(gòu)送Cy110位取反CPL C將Cy取反111CPL bit將bit位地址的值取反說明:1)Ri,
17、 Rn指當(dāng)前工作寄存器,i,n = 0 7,當(dāng)前工作寄存器由程序狀態(tài)字寄存器PSW的2個位RS1, RS0決定MCS51使用匯編語言指令,它共有44個操作碼助記符,33種功能,其操作數(shù)有data、direct、Rn、Ri等。這里介紹指令助記符及其相關(guān)符號的記憶方法。 一、助記符號的記憶方法 1、表格列舉法 把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結(jié)。 2、英文還原法 單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助于理解其助記符含義,從而加強記憶。例如:增量 INCIncremect 減量 DNCDecrement 短轉(zhuǎn)移 SJMP
18、Short jump 長轉(zhuǎn)移 LJMPLong jump 比較轉(zhuǎn)移 CJNECompare jump not equality 絕對轉(zhuǎn)移 AJMPAbsolute jump 空操作 NOPNo operation交換 XCHExchange 加法 ADDAddition乘法 MULMultiplication 除法 DIVDivision左環(huán)移 RLRotate left 進位左環(huán)移 RLCRotate left carry右環(huán)移 RRRotate right 進位右環(huán)移RRCRotate right carry 3、功能模塊記憶法 單片機的44個指令助記符,按所屬指令功能可分為五大類,每類又
19、可以按功能相似原則為23組。這樣,化整為零,各個擊破,實現(xiàn)快速記憶。 1)數(shù)據(jù)傳送組。 2)加減運算組 MOV 內(nèi)部數(shù)據(jù)傳送 ADD 加法 MOVC 程序存儲器傳送 ADDC 帶進位加法 MOVX 外部數(shù)據(jù)傳送 SUBB 帶進位減法 3)邏輯運算組。 4)子程序調(diào)用組。 ANL 邏輯與 LCALL 長調(diào)用 ORL 邏輯或 ALALL 絕對調(diào)用 XRL 邏輯異或 RET 子程序返回 二、指令的記憶方法 1、指令操作數(shù)的有關(guān)符號 MCS51的尋址方式共有七種:立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間址、變址尋址、相對尋址、位尋址。我們必須掌握其表示的方法。 1)立即數(shù)與直接地址。data表示八位
20、立即數(shù),data16表示是十六位立即數(shù),data或direct表示直接地址。 2)Rn(n=0-7)、A、B、CY、DPTR寄存器尋址變量。 3)R0、R1、DPTR、SP表示寄存器間址變量。 4)DPTRA、PCA表示變址尋址的變量。 5)PCrel(相對量)表示相對尋址變量。 記住指令的助記符,掌握不同尋址方式的指令操作數(shù)的表示方法,為我們記憶匯編指令打下了基礎(chǔ)。MCS51指令雖多,但按功能可分為五類,其中數(shù)據(jù)傳送類28條,算術(shù)運算類24條,邏輯操作類25條,控制轉(zhuǎn)移類17條,布爾位操作類17條。在每類指令里,根據(jù)其功能,抓住其源、目的操作數(shù)的不同組合,再輔之以下方法,是完全能記住的。我們
21、約定,可能的目的操作數(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/A MOV direct,data/direct/A/Rn/Ri MOV Ri,data/direct/A 2、指令圖示記憶法 圖示記憶法是把操作功能相同或相似、但其操作數(shù)不同的指令,用圖形和箭頭將目的、源操作數(shù)的關(guān)系表示出來的一種記憶方法。例如:由助記符MOV、
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年潛水及水下救撈裝備項目建議書
- 2025版清晰易懂的房屋租賃合同
- 2025年抗艾滋病用藥合作協(xié)議書
- 2025年大直徑硅單晶及新型半導(dǎo)體材料項目合作計劃書
- 2025年人工智能AI芯片項目建議書
- 線路樁施工方案
- 工序承包條款解讀3篇
- 度假村安全監(jiān)管合同3篇
- 工期延誤導(dǎo)致的合同違約處理3篇
- 會計賬目清晰承諾書加強財務(wù)監(jiān)督3篇
- 山西省城鎮(zhèn)教師支援農(nóng)村教育工作登記表
- 軟件項目周報模板
- 著名中醫(yī)婦科 夏桂成教授補腎調(diào)周法
- VSM(價值流圖中文)課件
- 考古發(fā)掘中文物的采集與保存課件
- 人工氣道的護理劉亞課件
- 專業(yè)技術(shù)人員
- 拌和場安全檢查表
- 節(jié)日主題班會 《感恩母親節(jié)》教學(xué)課件
- 新加坡sm214th面經(jīng)44緋的同學(xué)
- 全國第七屆中小學(xué)音樂優(yōu)質(zhì)課比賽教學(xué)設(shè)計跳圓舞曲的小貓
評論
0/150
提交評論