![51單片機(jī)匯編指令集(附記憶方法)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/726a1c2f-0da6-4a6e-92a1-4da9b932ee27/726a1c2f-0da6-4a6e-92a1-4da9b932ee271.gif)
![51單片機(jī)匯編指令集(附記憶方法)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/726a1c2f-0da6-4a6e-92a1-4da9b932ee27/726a1c2f-0da6-4a6e-92a1-4da9b932ee272.gif)
![51單片機(jī)匯編指令集(附記憶方法)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/726a1c2f-0da6-4a6e-92a1-4da9b932ee27/726a1c2f-0da6-4a6e-92a1-4da9b932ee273.gif)
![51單片機(jī)匯編指令集(附記憶方法)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/726a1c2f-0da6-4a6e-92a1-4da9b932ee27/726a1c2f-0da6-4a6e-92a1-4da9b932ee274.gif)
![51單片機(jī)匯編指令集(附記憶方法)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/4/726a1c2f-0da6-4a6e-92a1-4da9b932ee27/726a1c2f-0da6-4a6e-92a1-4da9b932ee275.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、51單片機(jī)匯編指令集一、數(shù)據(jù)傳送類指令(7種助記符)MOV(英文為Move):對內(nèi)部數(shù)據(jù)寄存器RAM和特殊功能寄存器SFR的數(shù)據(jù)進(jìn)行傳送;MOVC(MoveCode)讀取程序存儲器數(shù)據(jù)表格的數(shù)據(jù)傳送;MOVX(MoveExternalRAM)對外部RAM的數(shù)據(jù)傳送;XCH(Exchange)字節(jié)交換;XCHD(Exchangelow-orderDigit)低半字節(jié)交換;PUSH(PushontoStack)入棧;POP(PopfromStack)出棧;二、算術(shù)運(yùn)算類指令(8種助記符)ADD(Addition)加法;ADDC(AddwithCarry)帶進(jìn)位加法;SUBB(Subtractwit
2、hBorrow)帶借位減法;DA(DecimalAdjust)十進(jìn)制調(diào)整;INC(Increment)加1;DEC(Decrement)減1;MUL(Multiplication、Multiply)乘法;DIV(Division、Divide)除法;三、邏輯運(yùn)算類指令(10種助記符)ANL(ANDLogic)邏輯與;ORL(ORLogic)邏輯或;XRL(Exclusive-ORLogic)邏輯異或;CLR(Clear)清零;CPL(Complement)取反;RL(Rotateleft)循環(huán)左移;RLC(RotateLeftthroughttheCarryflag)帶進(jìn)位循環(huán)左移;RR(Ro
3、tateRight)循環(huán)右移;RRC(RotateRightthroughttheCarryflag)帶進(jìn)位循環(huán)右移;SWAP(Swap)低4位與高4位交換;四、控制轉(zhuǎn)移類指令(17種助記符)ACALL(AbsolutesubroutineCall)子程序絕對調(diào)用;LCALL(LongsubroutineCall)子程序長調(diào)用;RET(Returnfromsubroutine)子程序返回;RETI(ReturnfromInterruption)中斷返回;SJMP(ShortJump)短轉(zhuǎn)移;AJMP(AbsoluteJump)絕對轉(zhuǎn)移;LJMP(LongJump)長轉(zhuǎn)移;CJNE(Compar
4、eJumpifNotEqual)比較不相等則轉(zhuǎn)移;DJNZ(DecrementJumpifNotZero)減1后不為0則轉(zhuǎn)移;JZ(JumpifZero)結(jié)果為0則轉(zhuǎn)移;JNZ(JumpifNotZero)結(jié)果不為0則轉(zhuǎn)移;JC(JumpiftheCarryflagisset)有進(jìn)位則轉(zhuǎn)移;JNC(JumpifNotCarry)無進(jìn)位則轉(zhuǎn)移;JB(JumpiftheBitisset)位為1則轉(zhuǎn)移;JNB(JumpiftheBitisNotset)位為0則轉(zhuǎn)移;JBC(JumpiftheBitissetandClearthebit)位為1則轉(zhuǎn)移,并清除該位NOP(NoOperation)空操作;
5、五、位操作指令(1種助記符)CLR位清零;SETB(SetBit)位置1。8種常用偽指令1ORG16位地址;此指令用在原程序或數(shù)據(jù)塊的開始,指明此語句后面目標(biāo)程序或數(shù)據(jù)塊存放的起始地址。2 .標(biāo)號:DB字節(jié)數(shù)據(jù)項(xiàng)表;將項(xiàng)表中的字節(jié)數(shù)據(jù)存放到從標(biāo)號開始的連續(xù)字節(jié)單元中。例如:SEG:DB88H,100,“7”,“C”3 .標(biāo)號:DW雙字節(jié)數(shù)據(jù)項(xiàng)表;定義16位地址表,16地址按低位地址存低位字節(jié),高位地址存高位字節(jié)。例如:TAB:DW1234H,7BH4. 名字EQU表達(dá)式或名字二表達(dá)式;用與給一個表達(dá)式賦值或給字符串起名字。之后名字可用做程序地址,數(shù)據(jù)地址或立即數(shù)地址使用。名字必須是一字母開頭的
6、字母數(shù)字串。例如:COUNT=10或SPACEEQU10H5. 名字DATA直接字節(jié)地址;給8位內(nèi)部RAM單元起個名字,名字必須是一字母開頭的字母數(shù)字串。同一單元可起多個名字。例如:ERRORDATA80H6. 名字XDATA直接字節(jié)地址;給8位外部RAM起個名字,名字規(guī)定同DATA偽指令。例如:IO_PORTXDATA0CF04H7. 名字BIT位指令;給一可位尋址的位單元起個名字,規(guī)定同DATA偽指令。例如:SWTBIT30H8. 標(biāo)號:END;指出源程序到此結(jié)束,匯編對其后的程序語句不予理睬。源程序只在主程序最后使用一個END。指令集(111條)助記符說明字節(jié)周期代碼1.數(shù)據(jù)傳送指令(3
7、0條)MOVA,Rn寄存器送A11E8EFMOVA,data直接字節(jié)送A21E5MOVA,Ri間接RAM送A11E6-E7MOVA,#data立接數(shù)送A2174MOVRn,AA送寄存器11F8-FFMOVRn,data直接數(shù)送寄存器22A8-AFMOVRn,#data立即數(shù)送寄存器21787FMOVdata,AA送直接字節(jié)21F5MOVdata,Rn奇存器送直接字節(jié)21888FMOVdata,data直接字節(jié)送直接字節(jié)3285MOVdata,Ri間接Rn送直接字節(jié)2286;87MOVdata,#data立即數(shù)送直接字節(jié)3275MOVRi,AA送間接Rn12F6;F7MOVRi,data直接字節(jié)
8、送間接Rn11A6;A7MOVRi,#data立即數(shù)送間接Rn2276;77MOVDPTR,#data1616位常數(shù)送數(shù)據(jù)指針3190MOVC,bit直接位送進(jìn)位位21A2MOVbit,C進(jìn)位位送直接位2292MOVCA,A+DPTRA+DPTR尋址程序存貯字節(jié)送A3293MOVCA,A+PCA+PC尋址程序存貯字節(jié)送A1283MOVXA,Ri外部數(shù)據(jù)送A(8位地址)12E2;E3MOVXA,DPTR外部數(shù)據(jù)送A(16位地址)12E0MOVXRi,AA送外部數(shù)據(jù)(8位地址)12F2;F3MOVXDPTR,AA送外部數(shù)據(jù)(16位地址)12F0PUSHdata直接字節(jié)進(jìn)棧道,SP加122C0POP
9、data直接字節(jié)出棧,SP減122D0XCHA,Rn寄存器與A交換11C8CFXCHA,data直接字節(jié)與A父換21C5XCHA,Ri間接Rn與A交換11C6;C7XCHDA,Ri間接Rn與A低半字節(jié)父換11D6;D72邏輯運(yùn)算指令(35條)ANLA,Rn寄存器與到A11585FANLA,data直接字節(jié)與到A2155ANLA,Ri間接RAM與到A1156;57ANLA,#data立即數(shù)與到A2154ANLdata,AA與到直接字節(jié)2152ANLdata,#data立即數(shù)與到直接字節(jié)3253ANLC,bit直接位與到進(jìn)位位2282ANLC,/bit直接位的反碼與到進(jìn)位位22B0ORLA,Rn寄
10、存器或到A11484FORLA,data直接字節(jié)或到A2145ORLA,Ri間接RAM或到A1146;47ORLA,#data立即數(shù)或到A2144ORLdata,AA或到直接字節(jié)2142ORLdata,#data立即數(shù)或到直接字節(jié)3243ORLC,bit直接位或到進(jìn)位位2272ORLC,/bit直接位的反碼或到進(jìn)位位22A0XRLA,Rn寄存器異或到A11686FXRLA,data直接字節(jié)異或到A2165XRLA,Ri間接RAM異或到A1166;67XRLA,#data立即數(shù)異或到A2164XRLdata,AA異或到直接字節(jié)2162XRLdata,#data立即數(shù)異或到直接字節(jié)3263SETB
11、C進(jìn)位位置111D3SETBbit直接位置121D2CLRAA清011E4CLRC進(jìn)位位清011C3CLRbit直接位清021C2CPLAA求反碼11F4CPLC進(jìn)位位取反11B3CPLbit直接位取反21B2RLAA循環(huán)左移一位1123RLCAA帶進(jìn)位左移一位1133RRAA右移一位1103RRCAA帶進(jìn)位右移一位1113SWAPAA半字節(jié)父換11C43算術(shù)運(yùn)算指令(24條)ADDA,Rn寄存器加到A11282FADDA,data直接字節(jié)加到A2125ADDA,Ri間接RAM加到A1126;27ADDA,#data立即數(shù)加到A2124ADDCA,Rn寄存器帶進(jìn)位加到A11383FADDCA,
12、data直接字節(jié)帶進(jìn)位加到A2135ADDCA,Ri間接RAM帶進(jìn)位加到A1136;37ADDCA,#data立即數(shù)帶進(jìn)位加到A2134SUBBA,Rn從A中減去寄存器和進(jìn)位11989FSUBBA,data從A中減去直接字節(jié)和進(jìn)位2195SUBBA,Ri從A中減去間接RAM和進(jìn)位1196;97SUBBA,#data從A中減去立即數(shù)和進(jìn)位2194INCAA加11104INCRn寄存器加111080FINCdata直接字節(jié)加12105-6-INCRi間接RAM加11106;07INCDPTR數(shù)據(jù)指針加112A3DECAA減11114DECRn寄存器減111181FDECdata直接字節(jié)減12115
13、DECRi間接RAM減11116;17MULABA乘B14A4DIVABA被B除1484DAAA十進(jìn)制調(diào)整11D44轉(zhuǎn)移指令(22條)AJMPaddr11絕對轉(zhuǎn)移22*1LJMPaddr16長轉(zhuǎn)移3202SJMPrel短轉(zhuǎn)移2280JMPA+DPTR相對于DPTR間接轉(zhuǎn)移1273JZrel若A=0則轉(zhuǎn)移2260JNZrel若AH0則轉(zhuǎn)移2270JCrel若C=1則轉(zhuǎn)移2240JNCrel若CH1則轉(zhuǎn)移2250JBbit,rel若直接位=1則轉(zhuǎn)移3220JNBbit,rel若直接位=0則轉(zhuǎn)移3230JBCbit,rel若直接位=1則轉(zhuǎn)移且清除3210CJNEA,data,rel直接數(shù)與A比較,不
14、等轉(zhuǎn)移32B5CJNEA,#data,rel立即數(shù)與A比較,不等轉(zhuǎn)移32B4CJNERi,#data,rel立即數(shù)與間接RAM比較,不等轉(zhuǎn)移32B6;B7CJNERn,#data,rel立即數(shù)與寄存器比較不等轉(zhuǎn)移32B8BFDJNZRn,rel寄存器減1不為0轉(zhuǎn)移22D8DFDJNZdata,rel直接字節(jié)減1不為0轉(zhuǎn)移32D5ACALLaddr11絕對子程序調(diào)用22*1LCALLaddr16子程序調(diào)用3212RET子程序調(diào)用返回1222RETI中斷程序調(diào)用返回1232NOP空操作1100六. 記憶方法MCS51使用匯編語言指令,它共有44個操作碼助記符,33種功能,其操作數(shù)有廿data、di
15、rect、Rn、Ri等。這里先介紹指令助記符及其相關(guān)符號的記憶方法。一、助記符號的記憶方法1表格列舉法把44個指令助記符按功能分為五類,每類列表記憶。此處從略,請讀者自己總結(jié)。2英文還原法單片機(jī)的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助于理解其助記符含義,從而加強(qiáng)記憶。例如:增量INCIncremect減量DNCDecrement短轉(zhuǎn)移SJMPShortjump長轉(zhuǎn)移LJMPLongjump比較轉(zhuǎn)移CJNEComparejumpnotequality絕對轉(zhuǎn)移AJMPAbsolutejump空操作NOPNooperation交換XCHExchange加法ADDAd
16、dition乘法MULMultiplication除法DIVDivision左環(huán)移RLRotateleft進(jìn)位左環(huán)移RLCRotateleftcarry右環(huán)移RRRotateright進(jìn)位右環(huán)移RRCRotaterightcarry3功能模塊記憶法單片機(jī)的44個指令助記符,按所屬指令功能可分為五大類,每類又可以按功能相似原則為23組。這樣,化整為零,各個擊破,實(shí)現(xiàn)快速記憶。1)數(shù)據(jù)傳送組。2)加減運(yùn)算組MOV內(nèi)部數(shù)據(jù)傳送ADD加法MOVC程序存儲器傳送ADDC帶進(jìn)位加法MOVX外部數(shù)據(jù)傳送SUBB帶進(jìn)位減法3)邏輯運(yùn)算組。4)子程序調(diào)用組。ANL邏輯與LCALL長調(diào)用ORL邏輯或ALALL絕對
17、調(diào)用XRL邏輯異或RET子程序返回二、指令的記憶方法1指令操作數(shù)的有關(guān)符號MCS51的尋址方式共有六種:立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間址、變址尋址、相對尋址。我們必須掌握其表示的方法。1) 立即數(shù)與直接地址。ata表示八位立即數(shù),#data16表示是十六位立即數(shù),data或direct表示直接地址。2) Rn(n=07)、A、B、CY、DPTR寄存器尋址變量。3) R0、R1、DPTR、SP表示寄存器間址變量。4) DPTR+A、PC+A表示變址尋址的變量。5) PC+rel(相對量)表示相對尋址變量。記住指令的助記符,掌握不同尋址方式的指令操作數(shù)的表示方法,為我們記憶匯編指令打下
18、了基礎(chǔ)。MCS51指令雖多,但按功能可分為五類,其中數(shù)據(jù)傳送類28條,算術(shù)運(yùn)算類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條指令。MOVA,#data/direct/A/Rn/Ri以此類推,寫出其它指令。MOVRn,#data/direct/AMOVdirect,#data/direct/A/Rn/RiMOVRi,#data/direct/A2指令圖示記憶法圖示記憶法是把操作功能相同或相似、但其操作數(shù)不同的指令,用圖形和箭頭將目的、源操作數(shù)的關(guān)系表示出來的一種記憶方法。例如:由助記符MOV、MOVX、MOVC組成的送數(shù)組指令,可以用圖1、2幫助記憶。由助記符CJNE形成的四條指令,也可以用圖示法表示,如圖3。CJNEA,廿data,relCJNEA,direct,relCJNERn,廿data,relCJNERi,廿data,rel另外,對于由(ANL、ORL、ARL)形成的18條邏輯操作指令,有關(guān)A的四條環(huá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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 時尚品牌店裝修合同樣本
- 2025年度特種設(shè)備安全管理停薪留職協(xié)議
- 夜間快遞運(yùn)輸線路外包合同
- 保險公司裝修質(zhì)量保證協(xié)議
- 產(chǎn)業(yè)園裝修貸款合同范本
- 2025年度網(wǎng)絡(luò)安全應(yīng)急響應(yīng)工程師聘請合同-@-1
- 學(xué)校教室半包裝修合同樣本
- 工廠車間裝修包工協(xié)議
- 家電賣場展位裝修合同書
- 保險公司裝修制式合同樣本
- 自卸車司機(jī)實(shí)操培訓(xùn)考核表
- 教師個人基本信息登記表
- 中考現(xiàn)代文閱讀理解題精選及答案共20篇
- ESD測試作業(yè)指導(dǎo)書-防靜電手環(huán)
- 高頻變壓器的制作流程
- 春季開學(xué)安全第一課PPT、中小學(xué)開學(xué)第一課教育培訓(xùn)主題班會PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級上冊語文教材分析
- 艾賓浩斯遺忘曲線復(fù)習(xí)方法表格模板100天
- APR版制作流程
- 《C++程序設(shè)計》完整教案
評論
0/150
提交評論