版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第三章MCS-51系列單片機指令系統(tǒng)和匯編語言程序設計,MCS-51單片機尋址方式MCS-51單片機分類指令MCS-51單片機匯編語言程序設計依據(jù),3.1 MCS-51單片機尋址方式,MCS-51單片機有七種尋址方式:直接尋址、直接尋址寄存器尋址、間接尋址、索引尋址和相對尋址位尋址,1。立即尋址,這意味著在指令中直接給出操作數(shù)。立即操作數(shù)有8位和16位形式,前面用 表示。例如:MOV甲,# 0ffh在累加器a # 2000h中將即時號碼FFH傳送到MOVDPTR;將數(shù)據(jù)指針DPTR中的16位立即數(shù)2000H轉移到MOV 40H和# 60h將立即數(shù)字60H轉移到內部隨機存取存儲器單元40H。2.
2、直接尋址。操作數(shù)地址的尋址模式直接在指令中給出。例如:MOV,30小時;內部隨機存取存儲器中30H單元的數(shù)據(jù)內容被傳送到累加器a3。寄存器尋址,通用寄存器的內容作為操作數(shù)尋址模式。通用寄存器包括:a、b、DPTR、R0R7。其中,R0R7必須在工作寄存器集中。例如:INCR0(R0)1R0應該注意,a和b都是通用寄存器和具有直接地址的特殊功能寄存器。4。寄存器間接尋址,寄存器中的內容作為地址,地址中的內容是操作數(shù)的尋址方式??捎糜诩拇嫫鏖g接尋址的寄存器有:R0、R1、DPTR、SP。其中,R0和R1必須在工作寄存器集中,而SP僅用于堆棧操作。例如:R1的摩凡陀;單元內容:MOVX DPTR,外
3、部數(shù)據(jù)內存中地址為P2R1的單元;外部數(shù)據(jù)內存中由地址為DPTR的單元寄存器間接尋址的內存空間包括內部數(shù)據(jù)內存和外部數(shù)據(jù)內存。內部數(shù)據(jù)內存共享128字節(jié),整個空間可以用一個字節(jié)的R0或R1來尋址。外部數(shù)據(jù)內存的最大大小是64K字節(jié),只有R0或R1不能尋址整個空間。在MCS-51系列單片機指令中,間接尋址外部數(shù)據(jù)內存有兩種方式:第一種是通過P2端口提供高位8位外部數(shù)據(jù)內存地址,通過R0或R1提供低位8位地址,共同尋址64K空間;第二種是使用16位DPTR作為寄存器間接尋址。5。索引尋址,操作數(shù)地址的尋址方式是由程序計數(shù)器PC或DPTR加偏移寄存器A中的內容構成的。索引只能尋址程序存儲器中的數(shù)據(jù)。
4、因為程序存儲器是只讀存儲器,所以索引尋址操作只有讀操作,沒有寫操作。例如, MOVC,一個dptr一個DPTR是存儲單元內容的一個MOVC,一個個人電腦的地址;一臺電腦是內存單元的地址內容a6。相對尋址,以當前程序計數(shù)器PC的內容為基址,加上指令給出的一個字節(jié)的補碼數(shù),形成一種新的PC值尋址方式。個人計算機中的當前值稱為基址,一個字節(jié)的補碼稱為偏移量,新的個人計算機值稱為傳輸目的地地址。例如:JC 80小時;C1跳變意味著如果進位位c為0,程序計數(shù)器PC中的內容將不會改變,也就是說,它不會傳輸。如果進位位c為1,則PC中的當前值是基址加上偏移80H作為分支指令的目的地址。7。位尋址,對位地址內
5、容進行位操作的尋址方式。微控制器中只有部分內部內存單元和特殊功能寄存器有位地址(它們被統(tǒng)一尋址,地址空間為00HFFH)。因此,位尋址只能用位地址來尋址這兩個空間。例如,setb20h120 MOV 32H,c;進位位C32H位,3.2分類指令,MCS-51單片機有111條指令,按功能分類,MCS-51指令系統(tǒng)可分為5類:數(shù)據(jù)傳輸指令(共29條)、算術運算指令(共24條)、邏輯運算指令(共24條)、控制轉移指令(共17條)、布爾變量運算指令(共17條)累加器操作數(shù)指令(共4條)MOV A、迪爾MOV A、#數(shù)據(jù)MOV A、Rn MOV A、Ri示例:R120H、(20H有三個指令(movRn、
6、dirMOV Rn、#數(shù)據(jù)MOV Rn),寄存器Rn作為目標操作數(shù)。例甲:(40H)30H。指令MOV R7和40H執(zhí)行后,R730H。(5條指令)MOV指令、MOV指令、數(shù)據(jù)MOV指令、MOV指令、MOV指令、Ri示例:R050H、(50H)10H、R0執(zhí)行后指令MOV 35H、(35H)10H。(3條指令)MOV里、迪爾MOV里、數(shù)據(jù)MOV里、查表指令(2條指令)、摩凡陀A、DPTRMOVC A、個人計算機例:A20H、DPTR2000H、指令摩凡陀A、ADPTR執(zhí)行后,程序存儲器單元2020H中的內容被發(fā)送到A .累加器A和片外數(shù)據(jù)存儲器ram傳送指令(4條)摩凡陀DPTR、A摩凡陀A、
7、DPTR摩凡陀A、Ri MOVX Ri,例:DPTR2000H、外部RAM例如:P210H,R150H,A64H,MOVX R1,A指令執(zhí)行后,在外部隨機存取存儲器中存儲64小時(1050小時)。堆棧操作指令(2條)推送方向彈出方向示例:SP07H,(35H)55H;在指令PUSH 35H被執(zhí)行后,它被發(fā)送到08H地址單元SP08H。交換指令(5) XCH A、Rn XCH A、Ri XCH A、dir XCHD A、risswap例如:在指令XCHD A和R0被執(zhí)行之后,A80H、R032H、(32H)FFH、A8FH、(32H)F0H。16位數(shù)據(jù)傳輸指令(1) MOV DPTR,數(shù)據(jù)16,
8、2。算術運算指令(共24條),共24條算術運算指令,算術運算主要執(zhí)行加、減、乘、除、增、減和十進制調整。加法指令(4) ADD A,#data ADD A,dir ADD A,Rn ADD A,Ri帶有進位加法指令(4) ADDC A,dir ADDC A,#data ADDC A,Rn ADDC A,Ri帶有借用減法指令(4) SUBB A,dir SUBB A,#data SUBB A,Rn SUBB A,Ri示例:A38H,R120H,(20H)23H,C1,指令SUBB A,R1執(zhí)行,A14H,乘法指令MUL A,B示例:A50H,BA0H,指令MUL A,B執(zhí)行,A0 執(zhí)行后,A02
9、H和B04H增加1條指令(5條)INC A DIR INC Ri INC Rn INC DPTR,減去1條指令(4條)DEC dir DEC Ri DEC Rn十進制調整指令(1條)阿達; 將A中根據(jù)二進制數(shù)相加的結果調整為根據(jù)BCD數(shù)相加的結果。3.共有24個邏輯運算指令,包括邏輯運算,如與、或、異或、求反、清零、左右移位。和操作指令(6) ANL A、ANL A、數(shù)據(jù)ANL A、ANL A、里ANL A、ANL A、數(shù)據(jù)或操作指令(6) ORL A、ORL A、數(shù)據(jù)ORL A、Rn ORL A、Ri ORL dir、A ORL dir、#數(shù)據(jù)示例異或操作指令(6條)XRL A、dir XR
10、L A、#數(shù)據(jù)XRL A、Rn XRL A、Ri XRL dir、A XRL dir、#數(shù)據(jù)示例:R023H、(23H)32H、A53H、之后累加器A中的內容取反清指令(一)CLR A;一點一點地;累加器a中的內容清除循環(huán)移位指令(4個)rl a;累加器a中的內容左移一位RR a;累加器a中的內容向右移動一位RLC;累加器a和進位位c中的內容左移一位RRC a;累加器A和進位位c的內容向右移動一位:A16H,在執(zhí)行RR A指令后,A0BH。4.控制轉移指令(共17條),用于控制程序的流向,控制范圍是程序存儲部分。子程序調用指令(4)絕對調用指令ACALL addr11絕對調用指令實現(xiàn)2K地址范
11、圍內的子程序調用。該指令實現(xiàn)的操作不會改變原PC機的高5位,而只是將11位地址地址11發(fā)送到PC機的低11位,以確定子程序的入口地址。由于整個64K程序存儲空間被劃分為32個基本的2K地址范圍(見表3.4),在編程時,必須確保緊隨ACALL指令之后的指令的第一個字節(jié)與被調用子程序的入口地址在相同的2K范圍內,否則ACALL指令不能用于實現(xiàn)該調用。表3.4程序存儲空間中的32個基本2K地址范圍,長調用指令LCALL addr16是64K程序存儲空間中的全范圍子程序調用指令,子程序的入口地址可以在64K地址空間中的任何地方。子程序RETurn指令ret從被調用的子程序返回,它與LCALL和ACAL
12、L指令一起使用。中斷返回指令RETI從中斷服務程序返回。除了RET,它還具有恢復中斷邏輯的功能。應該注意的是,不能用可再生能源替代可再生能源。轉移指令(12)轉移指令分為無條件轉移指令和有條件轉移指令。無條件分支指令包括絕對分支、長分支、短分支和間接分支。條件轉移指令包括結果為零、結果非零、減去“1”后結果非零、兩個數(shù)不相等等轉移條件。所有這些都采用相對轉移模式。無條件分支指令(4條)1長分支指令Ljmpadd16長分支指令是具有64K程序內存空間的全范圍分支指令,分支地址可以是16位地址值中的任何一個。2絕對分支指令AJMP addr11絕對分支指令是2K地址范圍內的分支指令,對分支目的地址
13、的要求與ACALL指令中子程序入口地址的要求相同。3短分支指令序列;PC 2 relPC短分支指令是頁面地址范圍內的相對分支指令。因為rel是一個1字節(jié)的補碼偏移量,而SJMP rel指令是一個2字節(jié)的指令,所以傳輸范圍是126d129d 4間接傳輸指令JMP A DPTR,條件傳輸指令(8) 1累加器零/非零傳輸指令JZ rel如果A=0,那么PC 2 relPC,程序傳輸?shù)狡屏縤f A0所指向的地址,順序執(zhí)行程序JNZ rel如果A0,PC 2 relPC,程序傳輸?shù)狡屏縄f A=0所指向的地址,以及順序執(zhí)行2兩個數(shù)不等的傳輸指令CJ如果A(dir),則程序執(zhí)行CJNE A,#數(shù)據(jù),r
14、el。如果是A #數(shù)據(jù),則PC 3重新啟動,程序傳輸;在A #數(shù)據(jù)的情況下,程序按順序執(zhí)行cjn #數(shù)據(jù);如果是Rn #數(shù)據(jù),PC3 relPC,程序被轉移;如果Rn #數(shù)據(jù),程序依次執(zhí)行CJNE,Ri #數(shù)據(jù),rel如果(Ri)#數(shù)據(jù),PC 3 relPC,程序傳輸;如果(Ri)#數(shù)據(jù),程序按順序執(zhí)行,3減去“1”非零轉移指令DJNZ Rn,rel Rn1Rn,如果Rn0,PC2relPC,程序轉移;如果Rn0,程序依次執(zhí)行DNZDIR,rel(DIR)1 dir;如果(dir)0,則PC3復位,程序轉移;如果(dir)為0,應注意DJNZ Rn和rel為2字節(jié)指令,而DJNZ dir和re
15、l為3字節(jié)指令,因此前者為PC2relPC,后者為滿足傳輸條件后的PC3relPC。示例:在以下程序運行后,在累加器a中解釋結果。MOV 23H,0ahclr一個循環(huán):加一個,23H DJNZ 23H,LOOP SJMP $解:根據(jù)程序,運算的結果是A1098765432155D37H無運算指令(一個NOP),5。布爾變量運算指令(共17條),共有17條布爾變量運算指令,它們具有檢查進位位C和直接位地址的共同特征明確的指示(2)CLR C;0C CLR位;0位指令集(2個)set;1C SETB鉆頭;1位否定指令(2段)CPL C CPL位邏輯和指令(2段)ANL C、位ANL C、位ORL C、位ORL C、位傳輸指令(2段)MOV C、位;MOV鉆頭;Cbit位控制轉移指令(5條)位控制轉移指令以位狀態(tài)作為實現(xiàn)程序轉移的判斷條件,介紹如下:JC rel如果C=1,則PC 2 relPC,程序轉移;否則,程序按順序執(zhí)行JNC rel,如果C=0,則PC 2 relPC,程序被轉移;否則,程序按順序執(zhí)行JB位,如果rel(位)=1,則PC 3 relPC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年長春職業(yè)技術學院單招職業(yè)傾向性考試模擬測試卷新版
- 2026年解剖生理藥物單招試題附答案
- 2026年遼源職業(yè)技術學院單招職業(yè)傾向性考試題庫及答案1套
- 2026年鄭州衛(wèi)生單招試題附答案
- 漏洞掃描技術
- 鐵路安全運輸管理課件
- 鄉(xiāng)村振興背景下大學生返鄉(xiāng)就業(yè)幫扶方案
- 電廠安全規(guī)程培訓要求課件
- 滕州打樁機安全培訓學院課件
- 高頻段傳輸技術
- 美術教學中的跨學科教學策略
- 羅茨鼓風機行業(yè)發(fā)展趨勢報告
- 慢性阻塞性肺疾病患者非肺部手術麻醉及圍術期管理的專家共識
- 燈謎大全及答案1000個
- 中建辦公商業(yè)樓有限空間作業(yè)專項施工方案
- 急性胰腺炎護理查房課件ppt
- 初三數(shù)學期末試卷分析及中考復習建議課件
- GB/T 4074.8-2009繞組線試驗方法第8部分:測定漆包繞組線溫度指數(shù)的試驗方法快速法
- 人教版四年級上冊語文期末試卷(完美版)
- 防空警報系統(tǒng)設計方案
- 酒店管理用水 酒店廚房定額用水及排水量計算表分析
評論
0/150
提交評論