2021年51單片機(jī)匯編指令總結(jié)_第1頁
2021年51單片機(jī)匯編指令總結(jié)_第2頁
2021年51單片機(jī)匯編指令總結(jié)_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、51單片機(jī)匯編指令總結(jié)數(shù)據(jù)傳輸指令一.片內(nèi)ram數(shù)據(jù)傳輸指令以累加器a為目的操作數(shù)的指令mova,rnmova,directmova,rimova,#data以寄存器rn為目的操作數(shù)的指令movrn,amovrn,directmovrn,data以直接地址為目的操作數(shù)的指令movdirect,amovdirect,rnmovdirect1,derect2movdirect,rimovdirect,#data間接地址為目的操作數(shù)的指令movri,amovri,directmovri,#data十六位數(shù)據(jù)傳送指令movdptr,#data16二.累加器a與片外ram數(shù)據(jù)傳送指令movxa,rimo

2、vxa,dptrmovxri,amovxdptr,a三.查表尋址movca,a+dptr(先pc(pc)+1,后a(a)+(dptr)+movca,a+pc(先pc(pc)+1,后a(a)+(pc)四.交換指令字節(jié)交換指令xcha,rnxcha,directxcha,ri半字節(jié)交換指令xchda,ri累加器半字節(jié)交換指令swapa五.棧操作指令push(入棧指令)pushdirectpop(出棧指令)popdirect算術(shù)運(yùn)算指令一.加法減法指令加法指令adda,rnadda,directadda,riadda,#data帶進(jìn)位加法指令addca,rna(a)+(rn)+cyaddca,dir

3、ecta(a)+(direct)+cyaddca,ria(a)+(ri)+cyaddca,#dataa(a)+(data)+cy帶借位減法指令subba,rna(a)-cy-(rn)subba,directa(a)-cy-(direct)subba,ria(a)-cy-(ri)subba,#dataa(a)-cy-#data二.乘法除法指令乘法指令mulabba(a)(b)高字節(jié)放在b中,低字節(jié)放在a中除法指令divaba(a)(b)的商,(b)(a)(b)的余數(shù)三.加1減1指令加1指令incaa(a)+1incrnrn(rn)+1incdirectdirect(direct)+1incri(

4、ri)(ri)+1incdptrdptr(dptr)+1減1指令decadecrndecdirectdecri四.十進(jìn)制調(diào)制指令daa調(diào)整累加器a的內(nèi)容為bcd碼邏輯操作指令一.邏輯與、或、異或指令邏輯與指令anla,rnanla,directanla,rianla,#data邏輯或這令orla,rnorla,directorla,riorla,#dataorldirect,aorldirect,#data邏輯異或指令xrla,rnxrla,directxrla,rixrla,#dataxrldirect,axrldirect,#data二.清零、取反指令累加器a清零指令crla累加器a取反指

5、令cpla三.循環(huán)位移指令累加器a循環(huán)左移指令rla累加器a循環(huán)右移指令rra累加器a連同進(jìn)位位循環(huán)左移指令rlca累加器a連同進(jìn)位位循環(huán)右移指令rrca控制轉(zhuǎn)移指令一.無條件轉(zhuǎn)移指令絕對轉(zhuǎn)移指令ajmpaddr11(先pc+2,然后將addr11的低十位傳給pc,pc的高六位不變)長轉(zhuǎn)移指令ljmpaddr16(用addr16的值替換pc的值)相對轉(zhuǎn)移(短轉(zhuǎn)移)指令sjmprel(帶符號的偏移字節(jié)數(shù))(pc+2,再加rel賦值給pc)間接轉(zhuǎn)移指令jmpa+dptr(a)+(dptr)(pc)二.條件轉(zhuǎn)移指令累加器判零轉(zhuǎn)移指令jzrel先pc+2;后判斷,a為0時轉(zhuǎn)移,pc+rel賦值給pc;

6、否則順序執(zhí)行jnzrel先pc+2,后判斷,a不為0時轉(zhuǎn)移,pc+rel賦值給pc;否則順序執(zhí)行比較轉(zhuǎn)移指令cjne目的操作數(shù),源操作數(shù),relcjnea,direct,rel先pc+3傳回pc,再比較目的操作數(shù)和原操作數(shù)cjnea,#data,rel目源時,程序轉(zhuǎn)移,pc+rel傳回pc且cy=0cjnern,#data,rel目=源時,程序順序執(zhí)行cjneri,#data,rel目orlc,bitorlc,bit三.位清零、置一、取反指令位清零指令clrcclrbit位置一指令setbcstebbi位取反指令cplccplbit這類指令的功能執(zhí)行的結(jié)果不影響標(biāo)志位,當(dāng)直接尋址位地址為端口p

7、0p3中的某一位時,具有“讀-改-寫”的功能。四.位條件轉(zhuǎn)移指令位累加器c判斷轉(zhuǎn)移指令jcrel先pc+2后判斷,(c)=1時,則pc+rel賦值給pc,反之順序執(zhí)行jncrel先pc+2后判斷,(c)=0時,則pc+rel賦值給pc,反之順序執(zhí)行判位變量轉(zhuǎn)移指令jbbit,rel先pc+3,判斷,若(bit)=1,pc+rel賦值給pc,反之順序往下執(zhí)行jnbbit,rel先pc+3,判斷,若(bit)=0,pc+rel賦值給pc,反之順序往下執(zhí)行判位變量轉(zhuǎn)移指令jbcbit,rel先pc+3,判斷,若(bit)=0,pc+rel賦值給pc,且bit0,反之順序往下執(zhí)行擴(kuò)展閱讀51單片機(jī)匯編

8、指令總結(jié)單片機(jī)指令功能一覽表助記符代碼說明mova,rne8ef寄存器amova,directe5dircet直接字節(jié)送amova,riere7間接ram送amova,#data74data立即數(shù)送amovrn,af8ffa送寄存器movrn,dirceta8afdircet直接字節(jié)送寄存器movrn,#data787fdata立即數(shù)送寄存器movdircet,af5dirceta送直接字節(jié)movdircet,rn888fdircet寄存器送直接字節(jié)movdircet1,dircet285dircet1dircet2直接字節(jié)送直接字節(jié)movdircet,ro8687間接ram送直接字節(jié)movd

9、ircet,#data75dircetdata立即數(shù)送直接字節(jié)movri,af6f7a送間接rammovri,#data7677data直接字節(jié)送間接rammovri,#data7677data立即數(shù)送間接rammovdptr,#data1690data15816位常數(shù)送數(shù)據(jù)指針data70movca,a+dptr93由(a)+(dptr)尋址的程序存貯器字節(jié)選amovca,a+pc83由(a)+(pc);尋址的程序存貯器字節(jié)送amovxa,rie2e3送外部數(shù)據(jù)(8位地址)送amovxa,dptre0送外部數(shù)據(jù)(16位地址)送amovxri,af2f3a送外部數(shù)據(jù)(8位地址)movxdptr

10、,af0a送外部數(shù)據(jù)(16位地址)pushdircetc0dircet直接字節(jié)進(jìn)棧,sp加1popdircetd0dircet直接字節(jié)退棧,sp減1xcha,rnc8cf交換a和寄存器xcha,dircetc5dircet交換a和直接字節(jié)xcha,ric6c7交換a和間接ramxcha,rid6d7交換a和間接ram的低位swapac算術(shù)操作(a的二個半字節(jié)交換)adda,rn282f寄存器加到aadda,dircet25dircet直接字節(jié)加到aadda,ri2627間接ram加到aadda,#data24data立即數(shù)加到aadda,rn383f寄存器和進(jìn)位位加到aadda,dircet3

11、5dircet直接字節(jié)和進(jìn)位位加到aadda,ri3637間接字節(jié)和進(jìn)位位加到aadda,data34data立即數(shù)和進(jìn)位位加到aadda,rn989fa減去寄存器和進(jìn)位位adda,dircet95dirceta減去直接字節(jié)和進(jìn)位位adda,ri3637間接ram和進(jìn)位位加到aadda,data34data立即數(shù)和進(jìn)位位加到asubba,rn989fa減去寄存器和進(jìn)位位subba,dircet95dirceta減去直接字節(jié)和進(jìn)位位subba,ri9697a減去間接ram和進(jìn)位位subba,#data94dataa減去立即數(shù)和進(jìn)位位inca04a加1incrn080f寄存器加1incdircet

12、05dircet直接字節(jié)加1incri0607間接ram加1deca14a減1decrn181f寄存器減1decdircet15dircet直接字節(jié)減1decri1617間接ram減1incdptra3數(shù)據(jù)指針加1mulaba4a乘以bdivab84a除以bdaad4a的十進(jìn)制加法調(diào)整邏輯操作anla,rn585f寄存器“與”到aanla,dircet55dircet直接字節(jié)“與”到aanla,ri5657間接ram“與”到aanla,#data54data立即數(shù)“與”到aanldirceta52dirceta“與”到直接字節(jié)anldircet,#data53dircetdata立即數(shù)“與”到

13、直接字節(jié)orla,rn484f寄存器“或”到aorla,dircet45dircet直接字節(jié)“或”到aorla,ri4647間接ram“或”到aorla,#data44data立即數(shù)“或”到aorldircet,a42dirceta“或”到直接字節(jié)orldircet,#data43dircetdata立即數(shù)“或”到直接字節(jié)xrla,rn686f寄存器“異或”到axrla,dircet65dircet直接字節(jié)“異或”到axrla,ri6667間接ram“異或”到axrla,#data64data立即數(shù)“異或”到axrldirceta62dirceta“異或”到直接字節(jié)xrldircet,#dat

14、a63dircetdata立即數(shù)“異或”到直接字節(jié)clrae4清零cplaf4a取反rla23a左環(huán)移rlca33a通過進(jìn)位左環(huán)移rra03a右環(huán)移rrca13a通過進(jìn)位右環(huán)移控制程序轉(zhuǎn)移acalladdr11*1addr(a7a0)絕對子程序調(diào)用lcalladdr1612addr(158)長子程序調(diào)用addr(70)ret22子程序調(diào)用返回retiaddr1132中斷調(diào)用返回ajmpaddr111addr(a7a6)絕對轉(zhuǎn)移ljmpaddr1602addr(158)長轉(zhuǎn)移addr(70)sjmprel80rel短轉(zhuǎn)移,相對轉(zhuǎn)移jmpa+dptr73相對于dptr間接轉(zhuǎn)移jzrel60rela

15、為零轉(zhuǎn)移jnzrel70rela為零轉(zhuǎn)移cjnea,dircet,relb5dircetrel直接字節(jié)與a比較,不等則轉(zhuǎn)移cjnea,#data,relb4datarel立即數(shù)與a比較,不等則轉(zhuǎn)移cjnea,rn,#data,relb8bfdatarel立即數(shù)與寄存器比較,不等則轉(zhuǎn)移cjneri,#data,relb6b7datarel立即數(shù)與間接ram比較,不等則轉(zhuǎn)移djnzrn,reld8dfrel寄存器減1,不為零則轉(zhuǎn)移djnzdircet,relb5dircetrel直接字節(jié)減1,不為零則轉(zhuǎn)移nop00空操作*=a10a9a8l=a10a9a80布爾變量操作clrcc3清零進(jìn)位clrb

16、itc2清零直接位setbcd3置位進(jìn)位setbbitd2置位直接位cplcb3進(jìn)位取反cplbitb2直接位取反anlc,bit82dit直接數(shù)“與”到進(jìn)位anlc,/bitb0直接位的反“與”到進(jìn)位orlc,bit72bit直接位“或”到進(jìn)位orlc,/bita0bit直接位的反“或”到進(jìn)位movc,bita2bit直接位送進(jìn)位movbit,c92bit進(jìn)位送直接位jcrel40rel進(jìn)位位為1轉(zhuǎn)移jncrel50rel進(jìn)位位為0轉(zhuǎn)移jbbit,rel20bitrel直接位為1相對轉(zhuǎn)移jnbbit,rel30bitrel直接位為0相對轉(zhuǎn)移jbcbit,rel10bitrel直接位為1相對轉(zhuǎn)

17、移,然后清零該位1.循環(huán)移位指令(4條)rla;累加器a中的內(nèi)容左移一位rra;累加器a中的內(nèi)容右移一位rlca;累加器a中的內(nèi)容連同進(jìn)位位cy左移一位rrca;累加器a中的內(nèi)容連同進(jìn)位位cy右移一位2.累加器半字節(jié)交換指令(1條)swapa;累加器中的內(nèi)容高低半字節(jié)互換3.求反指令(1條)cpla;累加器中的內(nèi)容按位取反4.清零指令(1條)clra;0(a),累加器中的內(nèi)容清05.邏輯與操作指令(6條)anla,data;累加器a中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在寄存器a中。anldata,#data;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。a

18、nla,#data;累加器a的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在累加器a中。anla,rn;累加器a的內(nèi)容和寄存器rn中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器a中。anldata,a;直接地址單元中的內(nèi)容和累加器a的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。anla,ri;累加器a的內(nèi)容和工作寄存器ri指向的地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器a中。6.邏輯或操作指令(6條)這組指令的作用是將兩個單元中的內(nèi)容執(zhí)行邏輯或操作。如果直接地址是i/o地址,則為“讀修改寫”操作。orla,data;累加器a中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在寄存器a中。orldata,#

19、data;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。orla,#data;累加器a的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在累加器a中。orla,rn;累加器a的內(nèi)容和寄存器rn中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器a中。orldata,a;直接地址單元中的內(nèi)容和累加器a的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。orla,ri;累加器a的內(nèi)容和工作寄存器ri指向的地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器a中。7.邏輯異或操作指令(6條)xrla,data;累加器a中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在寄存器a中。xrldata,#data;直接

20、地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。xrla,#data;累加器a的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在累加器a中。xrla,rn;累加器a的內(nèi)容和寄存器rn中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器a中。xrldata,a;直接地址單元中的內(nèi)容和累加器a的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。xrla,ri;累加器a的內(nèi)容和工作寄存器ri指向的地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器a中控制轉(zhuǎn)移類指令分析1.無條件轉(zhuǎn)移指令(4條)ljmpaddr16;addr16(pc),給程序計數(shù)器賦予新值(16位地址)ajmpaddr11;(pc)+2(pc

21、),addr11(pc10-0)程序計數(shù)器賦予新值(11位地址),(pc15-11)不改變sjmprel;(pc)+2+rel(pc)當(dāng)前程序計數(shù)器先加上2再加上偏移量給程序計數(shù)器賦予新值jmpa+dptr;(a)+(dptr)(pc),累加器所指向地址單元的值加上數(shù)據(jù)指針的值給程序計數(shù)器賦予新值2.條件轉(zhuǎn)移指令(8條)jzrel;a=0,(pc)+2+rel(pc),累加器中的內(nèi)容為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行jnzrel;a0,(pc)+2+rel(pc),累加器中的內(nèi)容不為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行cjnea,data,rel;a(data),(pc)+3+rel(pc),累加器中的內(nèi)容不等于直接地址單元的內(nèi)容,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行cjnea,#

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論