版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、8051系列單片機(jī)匯編語言指令速查表編號(hào)指令名稱指令助記符指令說明數(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ù)壓進(jìn)堆棧,29POP direct堆棧的數(shù)據(jù)送direct地址單元中,后堆棧指針減1,算術(shù)運(yùn)算
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帶進(jìn)位加法ADDC A, Rn將寄存器Rn與累加器A的數(shù)據(jù)相加,再加上進(jìn)位標(biāo)志內(nèi)的值后,結(jié)果保存到累加器A35ADDC A, direct將direct地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加,再加上進(jìn)位標(biāo)志內(nèi)的值后,結(jié)果保
6、存到累加器A36ADDC A, Ri寄存器Ri內(nèi)為RAM地址,將該地址單元內(nèi)的數(shù)據(jù)與累加器A的數(shù)據(jù)相加,再加上進(jìn)位標(biāo)志內(nèi)的值后,結(jié)果保存到累加器A37ADDC A, #data將立即數(shù)與累加器A的數(shù)據(jù)相加,再加上進(jìn)位標(biāo)志內(nèi)的值后結(jié)果保存到累加器A38帶借位減法SUBB A, Rn將與累加器A的數(shù)據(jù)減去寄存器Rn的數(shù)據(jù),再減去進(jìn)位標(biāo)志內(nèi)的值,結(jié)果保存到累加器A39SUBB A, direct將與累加器A的數(shù)據(jù)減去direct地址單元內(nèi)的數(shù)據(jù),再減去進(jìn)位標(biāo)志內(nèi)的值,結(jié)果保存到累加器A40SUBB A, Ri寄存器Ri內(nèi)為RAM地址,將累加器A的數(shù)據(jù)減去該地址單元內(nèi)的數(shù)據(jù),再減去進(jìn)位標(biāo)志內(nèi)的值后,結(jié)
7、果保存到累加器A41SUBB A, #data將累加器A的數(shù)據(jù)減去立即數(shù),再減去進(jìn)位標(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二-十進(jìn)制調(diào)整DA A對(duì)累加器A的結(jié)果進(jìn)行十進(jìn)制調(diào)整邏輯運(yùn)算指令(29條)54邏輯與ANL A, Rn將累加器A的值和寄存器Rn的值進(jìn)行與操作,結(jié)果保存到累加器A中55ANL A, direct將累加器A的值和direct地址單元內(nèi)的值進(jìn)行與操作,結(jié)果保存到累加器A中56ANL A, Ri寄存器Ri內(nèi)為RAM地址,將累加器A的值和該地址單元內(nèi)的值進(jìn)行與操作,結(jié)果保存到累加器A中57ANL A, #data將累加器A的值和立即數(shù)進(jìn)行與操作,結(jié)果保
9、存到累加器A中58ANL direct, A將累加器A的值和direct地址單元內(nèi)的值進(jìn)行與操作,結(jié)果保存到direct地址單元內(nèi)59ANL direct, #data將立即數(shù)和direct地址單元內(nèi)的值進(jìn)行與操作,結(jié)果保存到direct地址單元內(nèi)60邏輯或ORL A, Rn將累加器A的值和寄存器Rn的值進(jìn)行或操作,結(jié)果保存到累加器A中61ORL A, direct將累加器A的值和direct地址單元內(nèi)的值進(jìn)行或操作,結(jié)果保存到累加器A中62ORL A, Ri寄存器Ri內(nèi)為RAM地址,將累加器A的值和該地址單元內(nèi)的值進(jìn)行或操作,結(jié)果保存到累加器A中63ORL A, #data將累加器A的值和立
10、即數(shù)進(jìn)行或操作,結(jié)果保存到累加器A中64ORL direct, A將累加器A的值和direct地址單元內(nèi)的值進(jìn)行或操作,結(jié)果保存到direct地址單元內(nèi)65ORL direct, #data將立即數(shù)和direct地址單元內(nèi)的值進(jìn)行或操作,結(jié)果保存到direct地址單元內(nèi)66邏輯異或XRL A, Rn將累加器A的值和寄存器Rn的值進(jìn)行異或操作,結(jié)果保存到累加器A中67XRL A, direct將累加器A的值和direct地址單元內(nèi)的值進(jìn)行異或操作,結(jié)果保存到累加器A中68XRL A, Ri寄存器Ri內(nèi)為RAM地址,將累加器A的值和該地址單元內(nèi)的值進(jìn)行異或操作,結(jié)果保存到累加器A中69XRL A,
11、 #data將累加器A的值和立即數(shù)進(jìn)行異或操作,結(jié)果保存到累加器A中70XRL direct, A將累加器A的值和direct地址單元內(nèi)的值進(jìn)行異或操作,結(jié)果保存到direct地址單元內(nèi)71XRL direct, #data將立即數(shù)和direct地址單元內(nèi)的值進(jìn)行異或操作,結(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帶進(jìn)位右移RRC A累加器A的值帶進(jìn)位循環(huán)右移1位77帶進(jìn)位左移RLC A累加器A的值帶進(jìn)位循環(huán)左移1位控制轉(zhuǎn)移指令(17條
12、)78無條件轉(zhuǎn)移SJMP relrel為地址偏移量,PC加2后的地址加上rel作為目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運(yùn)行79AJMP addr11(a10- a0)addr11為11位地址,PC加2后的地址高5位與指令中的低11位地址構(gòu)成目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運(yùn)行80LJMP addr16將addr16的16位地址送程序計(jì)數(shù)器PC,使機(jī)器執(zhí)行下一條指令時(shí)無條件轉(zhuǎn)移到addr16處執(zhí)行程序81JMP A+DPTR目標(biāo)地址的基地址放在DPTR中,目標(biāo)地址對(duì)基地址的偏移量放在累加器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進(jìn)堆棧,再將PC的地址高5位與指令中的低11位地址構(gòu)成目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運(yùn)行96LCALL addr16PC加3后的地址PUSH進(jìn)堆棧,再將16位地址送PC作為目標(biāo)地址,程序跳到目標(biāo)地址繼續(xù)運(yùn)行97返回指令RET子程序返回指令,把堆棧中的地址恢復(fù)到PC中使程序回到調(diào)用處98RETI中斷程序返回指令,把堆棧中的地址恢復(fù)到PC中使程序回到調(diào)用處99空操作NOP空操作位操作指令(17條)100布爾傳送MOV C, bit將bit位地址中的值送PSW中的進(jìn)位標(biāo)志位CY101MOV bit, C將PSW中的進(jìn)位標(biāo)志位CY的值送b
16、it位地址中102位清0CLR C將進(jìn)位標(biāo)志位CY清0103位清0CLR bit將bit位地址內(nèi)清0104位置1SETB C將進(jìn)位標(biāo)志位CY置1105SETB bit將bit位地址內(nèi)置1106位與ANL C, bit將Cy和bit位地址中的值進(jìn)行與操作后,結(jié)果送Cy107ANL C, /bitbit位地址中的值取反后再與Cy進(jìn)行與操作,結(jié)構(gòu)送Cy108位或ORL C, bit將Cy和bit位地址中的值進(jìn)行或操作后,結(jié)果送Cy109ORL C, /bitbit位地址中的值取反后再與Cy進(jìn)行或操作,結(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個(gè)位RS1, RS0決定MCS51使用匯編語言指令,它共有44個(gè)操作碼助記符,33種功能,其操作數(shù)有data、direct、Rn、Ri等。這里介紹指令助記符及其相關(guān)符號(hào)的記憶方法。 一、助記符號(hào)的記憶方法 1、表格列舉法 把44個(gè)指令助記符按功能分為五類,每類列表記憶。此處從略,請(qǐng)讀者自己總結(jié)。 2、英文還原法 單片機(jī)的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對(duì)照漢語有助于理解其助記符含義,從而加強(qiáng)記憶。例如:增量 INCIncremect 減量 DNCDecrement 短轉(zhuǎn)移 SJMP
18、Short jump 長轉(zhuǎn)移 LJMPLong jump 比較轉(zhuǎn)移 CJNECompare jump not equality 絕對(duì)轉(zhuǎn)移 AJMPAbsolute jump 空操作 NOPNo operation交換 XCHExchange 加法 ADDAddition乘法 MULMultiplication 除法 DIVDivision左環(huán)移 RLRotate left 進(jìn)位左環(huán)移 RLCRotate left carry右環(huán)移 RRRotate right 進(jìn)位右環(huán)移RRCRotate right carry 3、功能模塊記憶法 單片機(jī)的44個(gè)指令助記符,按所屬指令功能可分為五大類,每類又
19、可以按功能相似原則為23組。這樣,化整為零,各個(gè)擊破,實(shí)現(xiàn)快速記憶。 1)數(shù)據(jù)傳送組。 2)加減運(yùn)算組 MOV 內(nèi)部數(shù)據(jù)傳送 ADD 加法 MOVC 程序存儲(chǔ)器傳送 ADDC 帶進(jìn)位加法 MOVX 外部數(shù)據(jù)傳送 SUBB 帶進(jìn)位減法 3)邏輯運(yùn)算組。 4)子程序調(diào)用組。 ANL 邏輯與 LCALL 長調(diào)用 ORL 邏輯或 ALALL 絕對(duì)調(diào)用 XRL 邏輯異或 RET 子程序返回 二、指令的記憶方法 1、指令操作數(shù)的有關(guān)符號(hào) MCS51的尋址方式共有七種:立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間址、變址尋址、相對(duì)尋址、位尋址。我們必須掌握其表示的方法。 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(相對(duì)量)表示相對(duì)尋址變量。 記住指令的助記符,掌握不同尋址方式的指令操作數(shù)的表示方法,為我們記憶匯編指令打下了基礎(chǔ)。MCS51指令雖多,但按功能可分為五類,其中數(shù)據(jù)傳送類28條,算術(shù)運(yùn)算類24條,邏輯操作類25條,控制轉(zhuǎn)移類17條,布爾位操作類17條。在每類指令里,根據(jù)其功能,抓住其源、目的操作數(shù)的不同組合,再輔之以下方法,是完全能記住的。我們
21、約定,可能的目的操作數(shù)按(data/direct/A/Rn/Ri)順序表示。 對(duì)于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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度影視作品授權(quán)使用合同
- 2024年度貨物采購協(xié)議
- 2024年國際快遞公司服務(wù)協(xié)議
- 2024年度建筑材料采購合同
- 2024年度供應(yīng)鏈管理服務(wù)合同標(biāo)的說明
- 04版7月:股權(quán)激勵(lì)計(jì)劃協(xié)議
- 信息技術(shù)2.0培訓(xùn)項(xiàng)目個(gè)人研修計(jì)劃
- 七夕節(jié)品牌宣傳文案(55句)
- 2024年建筑工程施工合同詳解
- 2024年城市內(nèi)商品車搬運(yùn)服務(wù)合同
- 審計(jì)部工作總結(jié)及計(jì)劃
- 山東開放大學(xué)2024《控制系統(tǒng)CAD》形考作業(yè)1-3答案
- 小學(xué)生心肺復(fù)蘇培訓(xùn)意義
- 幼兒體適能通用課件
- 大數(shù)據(jù)專業(yè)職業(yè)規(guī)劃
- 人教版九年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷及答案解析(共5套)
- 逆境中的積極心態(tài)與成就
- 山東省2023年高考物理模擬(一模、二模)試題知識(shí)點(diǎn)訓(xùn)練:電磁學(xué)解答題
- 門診健康宣教 課件
- 計(jì)量器具管理課件
- 2022年《系統(tǒng)集成項(xiàng)目管理工程師》案例分析真題
評(píng)論
0/150
提交評(píng)論