![單片機(jī)課件 第3章_第1頁](http://file4.renrendoc.com/view/ca43cecd00c14e1438c3272b40c9f25d/ca43cecd00c14e1438c3272b40c9f25d1.gif)
![單片機(jī)課件 第3章_第2頁](http://file4.renrendoc.com/view/ca43cecd00c14e1438c3272b40c9f25d/ca43cecd00c14e1438c3272b40c9f25d2.gif)
![單片機(jī)課件 第3章_第3頁](http://file4.renrendoc.com/view/ca43cecd00c14e1438c3272b40c9f25d/ca43cecd00c14e1438c3272b40c9f25d3.gif)
![單片機(jī)課件 第3章_第4頁](http://file4.renrendoc.com/view/ca43cecd00c14e1438c3272b40c9f25d/ca43cecd00c14e1438c3272b40c9f25d4.gif)
![單片機(jī)課件 第3章_第5頁](http://file4.renrendoc.com/view/ca43cecd00c14e1438c3272b40c9f25d/ca43cecd00c14e1438c3272b40c9f25d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式系統(tǒng)基礎(chǔ)主講:
李靜第3章51單片機(jī)匯編語言介紹單片機(jī)課件第3章第1頁3.151單片機(jī)指令系統(tǒng)電子系
李靜指令系統(tǒng)MCS-51單片機(jī)有111條指令有49條單字節(jié)、45條雙字節(jié)、17條三字節(jié)有64條單周期、45條雙周期、2條四面期按功效分類可劃分為5類:1)數(shù)據(jù)傳送類指令29條。2)算術(shù)運(yùn)算類指令24條。3)邏輯運(yùn)算類指令24條。4)控制轉(zhuǎn)移類指令22條。5)位操作類指令12條。單片機(jī)課件第3章第2頁3.151單片機(jī)指令系統(tǒng)電子系
李靜指令系統(tǒng)——符號約定Rn(n=0~7)Ri(i=0、1)#data:代表8位馬上數(shù)。#data16:代表16位馬上數(shù)。direct:代表8位片內(nèi)RAM單元(包含SFR)直接地址。Addr11
addr16rel:指定補(bǔ)碼形式8位地址偏移量。地址偏移量范圍為-128~+127。bit:代表片內(nèi)RAM或SFR可直接尋址位地址。@:間接尋址方式中,表示間址存放器符號。/:位操作指令中,表示先對該位求反再參加操作,但不影響該位原值。(×):表示由×所指地址單元中內(nèi)容。←:指令操作流程,將箭頭右邊內(nèi)容送到箭頭左邊單元中。$:指本條指令起始地址。單片機(jī)課件第3章第3頁3.151單片機(jī)指令系統(tǒng)電子系
李靜匯編語言指令格式[標(biāo)號:]操作碼[操作數(shù)1][,操作數(shù)2][,操作數(shù)3][;注釋]MAIN:MOVSP,#5FH;設(shè)置棧底指令格式機(jī)器語言指令格式操作碼操作數(shù)地址碼單字節(jié)指令,如RETI雙字節(jié)指令,如MOVA,#54H三字節(jié)指令,如MOV30H,#54H0123H0122H00110010B(32H)0121H0123H01010100B(54H)0122H01110100B(74H)0121H01010100B(54H)0123H00110000B(30H)0122H01110101B(75H)0121H單字節(jié)指令操作碼本身就隱含了操作數(shù)信息;普通情況下,雙字節(jié)指令首字節(jié)為操作碼,第二字節(jié)為操作數(shù)或操作數(shù)地址;三字節(jié)指令首字節(jié)為操作碼,后面兩個字節(jié)為操作數(shù)或操作數(shù)地址。指令字節(jié)越多,所占內(nèi)存單元越多,但執(zhí)行時間長短只取決于執(zhí)行該指令需要多少個機(jī)器周期。單片機(jī)課件第3章第4頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式怎樣找到操作數(shù)地址方式馬上尋址相對尋址位尋址直接尋址存放器尋址變址尋址存放器間接尋址單片機(jī)課件第3章第5頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——馬上尋址馬上尋址方式在指令中直接給出操作數(shù)表示馬上數(shù)時前面加#馬上數(shù)能夠用二進(jìn)制數(shù)(B)十六進(jìn)制數(shù)(H)十進(jìn)制數(shù)例:MOVA,#23H;A←23HMOVDPTR,#2040H;DPL←40H,DPH←20HMOV
A,#3AH;A←3AH單片機(jī)課件第3章第6頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——直接尋址直接尋址方式指令中給出操作數(shù)地址直接尋址方式可尋址內(nèi)部128字節(jié)RAM特殊功效存放器SFR位尋址單元特殊功效存放器只能使用直接尋址方式,能夠用其名稱表示直接地址例:MOV90H,A;90H←(A)MOVP1,A;P1←(A)MOVA,70H;A←(70H)單片機(jī)課件第3章第7頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——存放器尋址存放器尋址方式指令中給出存放器編號存放器編號為R0--R7其對應(yīng)工作存放器組由RS1、RS0決定例INCR0;R0←(R0)+1ADDA,R2;A←(A)+(R2)MOVA,R5;A←(R5)對累加器A、通用存放器B、數(shù)據(jù)指針存放器DPTR和進(jìn)位位CY,其尋址時詳細(xì)存放器已隱含在其操作碼中,而對選定8個工作存放器R0~R7則用操作碼低三位指明所用存放器。用戶可用PSW中RS1、RS0來選擇存放器組,再用操作碼中低三位來確定是組內(nèi)哪一個存放器,以到達(dá)尋址目標(biāo)。單片機(jī)課件第3章第8頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——存放器間接尋址存放器間接尋址在指令中給出存放操作數(shù)地址存放器可用于間接尋址方式存放器有R0、R1用于尋址內(nèi)部256字節(jié)RAM/SFRDPTR用于尋址外擴(kuò)數(shù)據(jù)存放器(R0、R1)尋址外擴(kuò)數(shù)據(jù)存放器,只能用存放器間接尋址方式例:MOVA,@R0MOVX@DPTR,A單片機(jī)課件第3章第9頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——變址尋址變址尋址方式是以累加器A中內(nèi)容加上變址存放器值形成操作數(shù)地址可用做變址存放器是DPTR或PC變址尋址方式只用于讀取程序存放器中數(shù)據(jù)例:MOVCA,@A+DPTRMOVCA,@A+PC單片機(jī)課件第3章第10頁3.151單片機(jī)指令系統(tǒng)電子系
李靜相對尋址方式僅用于轉(zhuǎn)移指令相對轉(zhuǎn)移基準(zhǔn)是PC當(dāng)前值相對轉(zhuǎn)移范圍為-128~+127全部條件轉(zhuǎn)移都采取相對尋址方式例:JNZrelrel可為一指令標(biāo)號,其位置應(yīng)在相對轉(zhuǎn)移范圍內(nèi)JZ30H尋址方式——相對尋址單片機(jī)課件第3章第11頁3.151單片機(jī)指令系統(tǒng)電子系
李靜尋址方式——位尋址位尋址是指對片內(nèi)RAM位尋址區(qū)和一些有位地址特殊功效存放器進(jìn)行位操作時尋址方式。例:MOVC,07H單片機(jī)課件第3章第12頁電子系
李靜數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令有29條,分為5類內(nèi)部RAM及SFR間傳送MOV讀寫外部數(shù)據(jù)存放器MOVX讀程序存放器MOVC數(shù)據(jù)交換XCHXCHD SWAP棧操作PUSHPOP傳送指令不影響標(biāo)志位3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第13頁電子系
李靜數(shù)據(jù)傳送類指令——內(nèi)部RAM及SFR間傳送(MOV)另有一條16位傳送指令MOVDPTR,#data163.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第14頁電子系
李靜數(shù)據(jù)傳送類指令——讀寫外部數(shù)據(jù)存放器(MOVX)讀寫外部數(shù)據(jù)存放器必須經(jīng)過累加器A讀寫外部數(shù)據(jù)存放器指令只能用間接尋址方式間址單元為DPTR或R0、R1MOVXA,@DPTRMOVX@DPTR,AMOVXA,@RiMOVX@Ri,A3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第15頁電子系
李靜數(shù)據(jù)傳送類指令——讀程序存放器(MOVC)讀程序存放器必須經(jīng)過累加器A讀程序存放器指令只能用變址尋址方式變址單元為DPTR或PCMOVCA,@A+DPTRMOVCA,@A+PC3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第16頁電子系
李靜數(shù)據(jù)傳送類指令——數(shù)據(jù)交換字節(jié)交換指令Rn
XCHA,direct
@Ri半字節(jié)交換指令
XCHDA,@Ri
累加器A中低四位與Ri所指單元低四位交換
SWAPA
累加器A中高四位與低四位交換3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第17頁電子系
李靜數(shù)據(jù)傳送類指令——棧操作指令棧操作只能用直接尋址方式壓棧指令
PUSHdirect出棧指令
POPdirect3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第18頁電子系
李靜傳送關(guān)鍵點(diǎn)指令中包含源操作數(shù)與目操作數(shù)傳送完成后目與源相同(交換除外)傳送指令不影響標(biāo)志位立即數(shù)只能作為源操作數(shù)兩個操作數(shù)不能同時用工作寄存器注意各操作數(shù)尋址方式3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第19頁電子系
李靜算術(shù)運(yùn)算類指令算術(shù)運(yùn)算指令共有24條算術(shù)運(yùn)算必須經(jīng)過ACC算術(shù)運(yùn)算指令將影響標(biāo)志位算術(shù)運(yùn)算包含加ADD、帶進(jìn)位加ADDC帶借位減SUBB增量INC、減量DEC乘MUL、除DIV十進(jìn)制調(diào)整DAA3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第20頁電子系
李靜算術(shù)運(yùn)算類指令——加減指令3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第21頁電子系
李靜算術(shù)運(yùn)算類指令——其它算術(shù)運(yùn)算指令16位存放器加一指令I(lǐng)NCDPTR十進(jìn)制調(diào)整指令DAA乘法指令MULAB(A)X(B)=BACY=0若乘積>0FFH則
OV=1除法指令DIVAB(A)/(B)=A……BCY=0若(B)=0則
OV=13.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第22頁電子系
李靜邏輯運(yùn)算類指令邏輯運(yùn)算類指令有24條單操作數(shù)指令累加器操作指令 CLRCPL移位指令 RLRLCRRRRC雙操作數(shù)指令邏輯與ANL邏輯或 ORL邏輯異或XRL3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第23頁電子系
李靜邏輯運(yùn)算類指令——累加器操作指令累加器清零CLRA只影響P標(biāo)志累加器求反CPLA不影響標(biāo)志3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第24頁電子系
李靜邏輯運(yùn)算類指令——移位指令移位指令必須經(jīng)累加器A全部移位都是循環(huán)移位,分左移、右移可帶進(jìn)位移或不帶進(jìn)位移RLARLCARRARRCA除帶進(jìn)位移位外,不影響標(biāo)志3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第25頁電子系
李靜邏輯運(yùn)算類指令——與/或/異或指令A(yù)NL/ORL/XRL源操作數(shù)目標(biāo)操作數(shù)ARn@Ridirect#dataAX****direct*XXX*邏輯與運(yùn)算慣用于將一些位屏蔽(即清零)。方法:將要屏蔽位同“0”相與,要保留不變位同“1”相與。例:設(shè)(A)=63H,執(zhí)行指令:ANLA,#0FCH邏輯或運(yùn)算慣用于將一些位置位。方法:將要置位位同“1”相或,要保留不變位同“0”相或。例:設(shè)(A)=63H,執(zhí)行指令:ORLA,#80H邏輯異或運(yùn)算慣用于將一些位取反。方法:將要取反位同“1”相異或,要保留不變位同“0”相異或。例:試編程,試內(nèi)部RAM30H單元中低2位置1,高2位清0,其余4位取反ANL 30H,#3FHORL 30H,#03HXRL 30H,#3CH3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第26頁電子系
李靜邏輯運(yùn)算類指令邏輯運(yùn)算類指令執(zhí)行時普通不影響PSW僅當(dāng)目標(biāo)操作數(shù)為A時對P有影響帶進(jìn)位移位指令影響CY3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第27頁電子系
李靜控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令有22條,分為:無條件轉(zhuǎn)移指令A(yù)JMPLJMPSJMPJMP條件轉(zhuǎn)移指令 JZ/JNZJC/JNCJB/JNBJBC比較轉(zhuǎn)移指令 CJNE循環(huán)轉(zhuǎn)移指令 DJNZ調(diào)用返回指令 ACALL/LCALLRETRETI空操作指令 NOP3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第28頁電子系
李靜控制轉(zhuǎn)移類指令——無條件轉(zhuǎn)移指令短(絕對)轉(zhuǎn)移指令A(yù)JMPaddr11PC高5位與指令中給出11位地址相加,可在當(dāng)前PC2K范圍內(nèi)轉(zhuǎn)移長轉(zhuǎn)移指令LJMPaddr16轉(zhuǎn)移范圍為整個64K存放空間相對轉(zhuǎn)移指令SJMPrel轉(zhuǎn)移范圍為-128~+127散轉(zhuǎn)指令JMP@A+DPTR3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第29頁電子系
李靜控制轉(zhuǎn)移類指令——散轉(zhuǎn)指令累加器A中內(nèi)容與DPTR內(nèi)容相加形成轉(zhuǎn)移地址A=?AJMPf0AJMPf1AJMPf2AJMPf3AJMPf4A=0A=2A=4A=6A=8……MOVA,#dataRLAMOVDPTR,#TABLEJMP@A+DPTR…...TABLEAJMPf0AJMPf1AJMPf2AJMPf3AJMPf43.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第30頁電子系
李靜控制轉(zhuǎn)移類指令——條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令有7條,都是相對轉(zhuǎn)移指令JZrel累加器為“0”轉(zhuǎn)移,PC←(PC)+2+relJNZrel累加器非“0”轉(zhuǎn)移,PC←(PC)+2+relJCrel有進(jìn)位轉(zhuǎn)移,PC←(PC)+2+relJNCrel無進(jìn)位轉(zhuǎn)移,PC←(PC)+2+relJBbit,relbit=“1”轉(zhuǎn)移,PC←(PC)+3+relJNBbit,relbit=“0”轉(zhuǎn)移,PC←(PC)+3+relJBCbit,relbit=“1”轉(zhuǎn)移且轉(zhuǎn)移后將bit清零,PC←(PC)+2+rel3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第31頁電子系
李靜控制轉(zhuǎn)移類指令——比較轉(zhuǎn)移指令CJNE操作數(shù)1,操作數(shù)2,操作數(shù)3
A,direct,relA,#data,relRn,#data,rel@Ri,#data,rel操作數(shù)1與操作數(shù)2比較,不等于零轉(zhuǎn)移操作數(shù)1<操作數(shù)2則CY=“1”3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第32頁電子系
李靜控制轉(zhuǎn)移類指令——循環(huán)轉(zhuǎn)移指令循環(huán)轉(zhuǎn)移指令是相對轉(zhuǎn)移循環(huán)計數(shù)器減一,不等于“0”轉(zhuǎn)移循環(huán)計數(shù)器可用工作存放器DJNZRn,rel直接地址DJNZdirect,rel3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第33頁電子系
李靜控制轉(zhuǎn)移類指令——調(diào)用返回指令調(diào)用指令短調(diào)用(2K范圍內(nèi))ACALLaddr11長調(diào)用(64K范圍內(nèi))LCALLaddr16返回指令子程序返回RET中止返回RETI空操作
NOP3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第34頁電子系
李靜位操作類類指令8051中含有一個一位布爾處理器布爾處理器以CY為位累加器布爾處理器能夠進(jìn)行邏輯與、邏輯或運(yùn)算置位、清零、求反位處理單元有:20H--2FH單元SFR中地址能被8整除單元3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第35頁電子系
李靜位操作類類指令——位處理單元20H21H22H2DH2EH2FH000102030405060708090A0B0C0D0E0F7F7E7D7C7B7A79783.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第36頁電子系
李靜位操作類類指令——位地址表示形式位地址只有直接尋址方式直接地址0D5H單元地址.位序號0D0H.5單元名稱.位序號PSW.5位存放器名稱F03.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第37頁電子系
李靜位操作類類指令——位傳送指令位傳送指令:MOVC,bitMOVbit,C位傳送指令特點(diǎn)必須經(jīng)過CY位地址只有直接尋址方式不影響其它標(biāo)志3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第38頁電子系
李靜位操作類類指令——位變量修改指令清“0”CLRCCLRbit置“1”SETBCSETBbit求反CPLCCPLbit3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第39頁電子系
李靜位操作類類指令——位變量邏輯操作指令指定位變量與位累加器CY進(jìn)行邏輯操作,結(jié)果在CY中邏輯與ANLC,bitANLC,/bit邏輯或ORLC,bitORLC,/bit3.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第40頁電子系
李靜注意區(qū)分位操作指令與字節(jié)操作指令A(yù)NLC,20HANLA,20HCLRACLRP1.3SETBRS03.151單片機(jī)指令系統(tǒng)單片機(jī)課件第3章第41頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定位偽指令格式:
ORGnn為十進(jìn)制或十六進(jìn)制數(shù)作用:定位后面指令地址注意:ORG定義地址次序不能顛倒ORG定義地址不能被占用偽指令不產(chǎn)生目標(biāo)碼指令單片機(jī)課件第3章第42頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定義字節(jié)偽指令格式: DBX1,X2,…XnXi可認(rèn)為8位數(shù)據(jù)、ASCII碼、表達(dá)式作用:在程序存放器中存入常數(shù)或表格單片機(jī)課件第3章第43頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定義字偽指令格式: DWY1,Y2,…YnYi可認(rèn)為16位數(shù)據(jù)或表達(dá)式作用:在程序存放器中存入常數(shù)或表格Yi低8位在高地址字節(jié)高8位在低地址字節(jié)單片機(jī)課件第3章第44頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定義存放空間偽指令格式:
DS表示式作用:在編譯時,編譯器從指令地址開始保留DS之后表示式值所要求存放單元,以備后用。例:
ORG 1000H DS 07H DB 20H,20 DW 12H匯編后,存放器怎樣存放數(shù)據(jù)?單片機(jī)課件第3章第45頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——指令當(dāng)前地址格式符號:$例:
JNB P1.0,$單片機(jī)課件第3章第46頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定義常量格式:
字符串1EQU字符串2例:
OUT1EQUP1 MOV OUT1,A單片機(jī)課件第3章第47頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——數(shù)據(jù)地址賦值偽指令格式:
字符名稱DATA數(shù)據(jù)或表示式例:
ORG 8000H INDEXJ DATA 8096H LJMP INDEXJ單片機(jī)課件第3章第48頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——定義位符號偽指令格式:
字符名稱BIT位地址例:
P11 BIT P1.1單片機(jī)課件第3章第49頁3.151單片機(jī)指令系統(tǒng)電子系
李靜偽指令——匯編結(jié)束指令格式:
END作用:結(jié)束匯編注意:后續(xù)指令不參加匯編單片機(jī)課件第3章第50頁3.2匯編語言程序結(jié)構(gòu)電子系
李靜匯編語言程序設(shè)計基本方法分析問題,明確任務(wù)建立數(shù)學(xué)模型,確定算法繪制程序流程圖編寫源程序匯編、調(diào)試匯編語言程序設(shè)計普通流程當(dāng)接到程序設(shè)計任務(wù)后,首先對任務(wù)進(jìn)行詳盡分析,搞清楚已知數(shù)據(jù)和想要得到結(jié)果,程序應(yīng)該完成何種功效。
依據(jù)實際問題要求和指令系統(tǒng)特點(diǎn),確定處理問題詳細(xì)步驟。依據(jù)任務(wù)要求,對不一樣計算方法進(jìn)行比較,選擇最適宜算法。將處理問題詳細(xì)步驟用一個約定幾何圖形、指向線和必要文字說明描述出來圖形。經(jīng)過上述各步驟后,處理問題思緒已經(jīng)非常清楚,所以接下來就能夠按流程圖次序?qū)γ恳粋€功效框選取適當(dāng)指令編寫出匯編語言程序。在應(yīng)用程序設(shè)計中,幾乎沒有一個程序只經(jīng)過一次編寫就完全成功,所以必須經(jīng)過上機(jī)調(diào)試。單片機(jī)課件第3章第51頁不論程序結(jié)構(gòu)是簡單還是復(fù)雜,普通都可分為4種基本形式:次序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序調(diào)用結(jié)構(gòu)。3.2匯編語言程序結(jié)構(gòu)電子系
李靜次序程序設(shè)計分支程序設(shè)計循環(huán)程序設(shè)計子程序設(shè)計次序程序又稱簡單程序,是指一個次序執(zhí)行程序。在這種程序中,沒有分支、循環(huán)或子程序。分支程序就是條件分支程序,即依據(jù)不一樣條件,執(zhí)行不一樣程序段。在編寫分支程序時,關(guān)鍵是怎樣判斷分支條件。循環(huán)程序普通由以下組成:初始化部分;處理部分;修改部分;控制部分;結(jié)束部分。在MCS-51指令系統(tǒng)中,提供了兩條調(diào)用子程序指令A(yù)CALL、LCALL以及一條返回主程序指令RET單片機(jī)課件第3章第52頁例:將30H單元中存放一個兩位BCD,拆開并存入31H和32H單元,高字節(jié)存入32H單元。05H32H06H31H56H30H3.2匯編語言程序結(jié)構(gòu)電子系
李靜示例拆字程序32H31H56H30H56H05H06H分別屏蔽高4位與低4位,再將高4位交換開始將30H單元內(nèi)容送A將A中高、低4位交換將A中內(nèi)容存入32H單元屏蔽30H單元內(nèi)容高4位屏蔽A中內(nèi)容低4位將30H單元內(nèi)容存入31H單元結(jié)束MOVA,30HANLA,#0F0HSWAPAMOV32H,AMOV31H,30HANL31H,#0FHSJMP$分析問題確定算法畫流程圖編寫程序匯編調(diào)試單片機(jī)課件第3章第53頁3.2匯編語言程序結(jié)構(gòu)電子系
李靜例:設(shè)2個16位二進(jìn)制數(shù)存于以30H為首址連續(xù)單元中,求二者和,并將和存于以40H為首址區(qū)域。(低字節(jié)在前)分析問題確定算法畫流程圖編寫程序匯編調(diào)試(30H)+(32H)送40H單元;(31H)+(33H)+Cy送41H單元;Cy+0送42H單元開始(30H)+(32H)送40H單元(31H)+(33H)+(CY)送41H單元Cy+0送42H單元結(jié)束MOVA,30HADDA,32HMOV40H,AMOVA,31HADDCA,33HMOV41H,AMOVA,#00HADDCA,#0MOV42H,ASJMP$示例求和程序單片機(jī)課件第3章第54頁例:兩個無符號數(shù)分別存于ONE和TWO單元,試比較它們大小,將較大者存人MAX單元。若兩數(shù)相等則任存入一個即可。電子系
李靜分析問題確定算法畫流程圖編寫程序匯編調(diào)試開始將ONE單元內(nèi)容送A結(jié)束A≥TWO將TWO單元內(nèi)容送MAX單元YN將ONE單元內(nèi)容送MAX單元MOV A,ONECJNE A,TWO,NEXT1NEXT1:JCNEXT2MOVMAX,ONE
SJMP$NEXT2:MOVMAX,TWO SJMP$示例比較大小3.2匯編語言程序結(jié)構(gòu)單片機(jī)課件第3章第55頁電子系
李靜多分支程序設(shè)計利用JMP@A+DPTR轉(zhuǎn)移指令實現(xiàn)多分支程序MCS-51指令系統(tǒng)中有一條JMP@A+DPTR轉(zhuǎn)移指令,利用它能夠方便地編制多分支(也稱散轉(zhuǎn))程序。下面介紹兩種方法。(1)用轉(zhuǎn)移指令表實現(xiàn)散轉(zhuǎn)在有些程序中,需要依據(jù)某一單元值0,1,…,n,對應(yīng)地轉(zhuǎn)向處理程序0,處理程序1,…,處理程序n。這時能夠用轉(zhuǎn)移指令A(yù)JMP或LJMP組成一個轉(zhuǎn)移表。(2)用轉(zhuǎn)移地址表實現(xiàn)散轉(zhuǎn)
例題當(dāng)轉(zhuǎn)移范圍比較大時,可使用轉(zhuǎn)移地址表方法。即每個處理程序入口地址直接置于地址表內(nèi),用查表指令找到對應(yīng)轉(zhuǎn)向地址,把它裝入DPTR中。將累加器清零后,用指令JMP@A+DPTR直接轉(zhuǎn)向各個處理程序入口。3.2匯編語言程序結(jié)構(gòu)單片機(jī)課件第3章第56頁電子系
李靜循環(huán)程序設(shè)計圖3.1循環(huán)程序結(jié)構(gòu)示意圖3.2匯編語言程序結(jié)構(gòu)單片機(jī)課件第3章第57頁3.2匯編語言程序結(jié)構(gòu)電子系
李靜例:使00H---7FH單元清0。開始給R0賦128、A清0A送@R0R0減1結(jié)束R0=00H?YN用MOV@R0,A做循環(huán)主體,修改R0值,能夠?qū)?送入00H—7FH單元中。MOVR0,#127CLRAUP:MOV@R0,ADECR0CJNER0,#00H,UPSJMP$分析問題確定算法畫流程圖編寫程序匯編調(diào)試思索:以下程序能使00H—7FH單元清0嗎?為何?MOVR0,#0MOVR7,#128CLRAUP:MOV@R0,AINCR0DJNZR7,UPSJMP$示例清零程序單片機(jī)課件第3章第58頁3.2匯編語言程序結(jié)構(gòu)電子系
李靜分析問題確定算法畫流程圖編寫程序匯編調(diào)試?yán)?內(nèi)存中以STRING開始區(qū)域有若干個字符和數(shù)字,普通稱為一個字符串,最末一個字符為"$",試統(tǒng)計這些字符數(shù)字?jǐn)?shù)目,結(jié)果存人NUM單元CLR AMOVR0,#STRINGLOOP:CJNE@R0,#24H,NEXTSJMPCOMPNEXT:INC A INCR0SJMPLOOPCOMP:INC AMOVNUM,ASJMP$開始給R0賦STRING、A清0A加1,并送NUM單元A加1R0加1結(jié)束@R0=24H?YN示例字符串長度單片機(jī)課件第3章第59頁3.2匯編語言程序結(jié)構(gòu)電子系
李靜示例求最大值分析問題確定算法畫流程圖編寫程序匯編調(diào)試?yán)?從BLOCK單元開始有一個無符號數(shù)數(shù)據(jù)塊,其長度存于LEN單元,試求出數(shù)據(jù)塊中最大數(shù),并存入MAX單元。開始將LEN單元內(nèi)容賦給R2,A清0,給R1賦BLOCKA與內(nèi)RAM內(nèi)容相減結(jié)束CY=0?YNR2減1;R1加1恢復(fù)AR2=0?A送MAX單元NY@R1送ACLRAMOVR2,LENMOVR1,#BLOCKLOOP:CLR C SUBBA,@R1 JNC NEXT MOVA,@R1SJMPNEXT1NEXT:ADD A,@R1NEXT1:INC R1DJNZR2,LOOPMOVMAX,ASJMP$思索:假如用CJNE指令實現(xiàn)比較,則怎樣修改程序?思索:假如用CJNE指令實現(xiàn)比較,則怎樣修改程序?
MOVR2,LENMOVR1,#BLOC
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 律師和社區(qū)合作協(xié)議
- 2024年七年級歷史上冊第四單元三國兩晉南北朝時期:政權(quán)分立與民族融合第17課西晉的短暫統(tǒng)一和北方各族的內(nèi)遷教案新人教版
- 重慶交通職業(yè)學(xué)院《建筑設(shè)計及原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 漳州衛(wèi)生職業(yè)學(xué)院《高等電磁理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 泉州紡織服裝職業(yè)學(xué)院《稅務(wù)籌劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林農(nóng)業(yè)大學(xué)《環(huán)境微生物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西生態(tài)工程職業(yè)技術(shù)學(xué)院《證券投資模擬實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 滄州醫(yī)學(xué)高等專科學(xué)?!痘瘜W(xué)微格教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安醫(yī)學(xué)院《腫瘤治療學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 跨境進(jìn)口保健品的物流與配送挑戰(zhàn)
- 婦科惡性腫瘤免疫治療中國專家共識(2023)解讀
- 2024年浪潮入職測評題和答案
- 小班數(shù)學(xué)《整理牛奶柜》課件
- 皮膚感染的護(hù)理診斷與護(hù)理措施
- 中考語文真題雙向細(xì)目表
- 2024年江蘇省對口單招英語試卷及答案
- 藥品集采培訓(xùn)課件
- 高中物理考試成績分析報告
- 部編版小學(xué)語文三年級上冊同步練習(xí)試題含答案(全冊)
- 血性胸水的護(hù)理課件
- 醫(yī)共體人財物管理系統(tǒng)需求說明
評論
0/150
提交評論