




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用第3章單片機的匯編語言與程序設計單片機的匯編語言與程序設計 3.1匯編語言概述 3.2 MCS-51指令系統簡介 3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述 3.1.1 匯編語言指令格式匯編語言指令格式 3.1.2 描述操作數的簡記符號描述操作數的簡記符號3.2 MCS-51指令系統簡介 3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用匯編語言匯編語言(Assem
2、bly Language)用助記助記(字字)符符代替操 作碼,用地址符號代替地址碼的一種面向機器的程序 設計語言;本章學習目標本章學習目標:了解匯編語言的一般規則,借助指令手冊能讀懂匯編程序。匯編語言特點匯編語言特點代碼精煉、執行速度快,但不便于編寫 較復雜的程序;匯編程序處理過程匯編程序處理過程輸入源程序檢查語法正確性(如有 語法錯誤,輸出錯誤信息)翻譯成二進制目標程序。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用一條匯編語言指令中最多包含4個區段,其一般格式為: 標號標號: 操作碼操作碼 操作數操作數 ;注釋注釋標號(標識符)當前指令行的符號地址,
3、其值為 該指令的機器碼首字節在ROM中的存放地址;標號由英文字母開頭的16個字符組成,不區分大小寫;標號與冒號(英文)可以同時省略。.0122H0123H0124H. xxH xxH xxH 74H 12HROMSTART 標號標號: 操作碼操作碼 操作數操作數 ;注釋注釋 START: MOV A,#12H ;機器碼7412H 例如: 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 標號標號: 操作碼操作碼 操作數操作數 ;注釋注釋操作碼是指令的操作行為,由操作碼助記字符操作碼助記字符表征;51單片機共有42種操作碼助記符,不區分大小寫。MOV A,#1
4、2H ; move (傳送)SETB P1.0 ; set bit (置位)CJNE A,R0, START ;compare and jump if not equal (比較跳轉)舉例: 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 標號標號: 操作碼操作碼 操作數操作數 ;注釋注釋操作數是指令的操作對象,用操作數簡記符表示,不區分大小寫;操作數可以是3個、2個、1個或沒有操作數;操作數大于1時要用(英文)逗號隔開。CJNE A,R0, START ;若AR0,轉START ADD A,#10H ; A + 10H ACRL A ; A0RET ;子
5、程序返回舉例: 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 標號標號: 操作碼操作碼 操作數操作數 ;注釋注釋注釋是對指令的解釋性說明,用以提高程序的可讀 性;可用任何文字或符號描述,可以省略;由(英文)分號開始,無需結束符號。MOV A,#12H ;立即數12HASETB P1.0 ; P1.01CJNE A,R0, START ;若AR0,轉START 舉例: 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用匯編語言中標示符標示符/十六進制地址十六進制地址/立即數立即數的區別方法:標示符標示符標號或匯編符號統稱為
6、標識符,由英文字母 開頭的16個字符組成。 例如 EAH,或C6A16進制地址進制地址若存儲單元地址的最高位值9時,應加 前綴“0 ” ,以區別標識符。 例如 0EAH,或 5AH立即數立即數出現在指令中的常數叫做立即數,應加前綴 “ # ”以區別于地址 。 例如 #0EAH,或 #5AH 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述 3.1.1 匯編語言指令格式匯編語言指令格式 3.1.2 描述操作數的簡記符號描述操作數的簡記符號3.2 MCS-51指令系統簡介 3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程
7、序設計單片機原理及應用單片機原理及應用指令手冊中,每條指令的操作數操作數卻是以簡記符號簡記符號表示的。掌握簡記符號簡記符號規則便于閱讀源程序(查指令手冊)真實指令中一般都含有具體的操作數,例如: MOV A, R3 或 MOV A, #35H 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用序號序號 簡記符號簡記符號 簡記符號的意義簡記符號的意義 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用簡記符號的使用練習 MOV 20H,#34H 以direct取代20H,以#data取代#34H 指令原型為 MOV direct
8、, #data MOV R0,A 以Ri取代R0,A保持不變 指令原型為 MOV Ri, A SJMP 30H 以rel取代30H 指令原型為 SJMP rel1 #data2 #data163 Rn4 Ri5 direct6 addr167 addr118 rel9 bit10 /11 $12 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述3.2 MCS-51指令系統簡介 3.2.1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運算及移位類指令 3.2.4 控制
9、轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用指令系統指令系統計算機中全部指令的集合51單片機共有111條指令,按功能功能可劃分為四大類: 數據傳送與交換類(31條) 算術運算類(24條) 邏輯運算類(34條) 轉移控制類(22條)*也可將分散于上述四類之中的位操作類位操作類指令匯總為第 五大類指令指令指令CPU用于指揮功能部件完成某一指定動作的指示 和命令 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用可實現可實
10、現RAM、SFR和和ROM之間的數據互傳或交換之間的數據互傳或交換數據傳送與交換類指令數據傳送與交換類指令 (31條) 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用數據傳送與交換類指令共有8種操作碼:MOV用于訪問片內RAMMOVX用于訪問片外RAMMOVC用于訪問程序存儲器XCH和XCHD用于字節交換SWAP用于A內半字節交換PUSH和POP用于堆棧操作 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用數據傳送類指令的基本通式為:
11、, 表示將源操作數源操作數(src)的內容傳送給目的操作數目的操作數 (dest) ,傳送后源操作數中內容不變。transfer具有三種具體形式:MOV數據在片內片內RAM范圍內傳送MOVX數據在A與片外與片外RAM之間傳送MOVC數據在A與與ROM之間傳送 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用單向箭頭表示只能從源源到目的目的雙向箭頭表示源源和目的目的可以互換位置弧線箭頭表示源源和目的目的相同(唯一)箭頭線旁邊的文字是相應的操作碼基本規律基本規律:立即數和ROM地址只能作為源操作數(單向箭頭);內外ROM與A的數據傳送只能用MOVC操作碼助記符;
12、片外RAM與A的數據傳送只能用MOVX操作碼助記符;PUSH、POP、SWAP只有1個操作數(弧線箭頭);位數據傳送只能在C(即Cy標志位)與bit間進行。數據傳送目的和源的快捷記憶法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例1:試分析并指出以下程序段運行后,21H單元的結果如何?MOV R1, #35HMOV A ,R1 MOV 21H,A【解】【解】分析思路如下: 將具體操作數還原為操作數簡記符; 根據指令表查出相應指令功能; 推算出指令的執行結果。源程序源程序 還原簡記符還原簡記符指令功能指令功能推算結果推算結果MOV R1,#35H MO
13、V Rn,#data Rn#data R1 #35HMOV A,R1 MOV A,Rn A Rn A R1= #35HMOV 21H,A MOV direct,A directA 21H A= #35H答案答案:21H單元的結果為#35H 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注:關注: MOV A,R1 (機器碼E9H)工作原理工作原理利用通用寄存器通用寄存器查找操作數的做法稱為寄存器尋址寄存器尋址通用寄存器通用寄存器:Rn,A,B,CY和DPTR五種類型(一般不考慮A的作用,除非A是指令中唯一的操作數) 根據機器碼E9H先找到片內RAM中R1
14、里存放的35H,然后將35H傳送給A,即操作結果是通過寄存器R1得到的。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例2:已知片內RAM44H單元為07H,試分析并指出以下程序運行后,21H單元的結果如何? MOV R0, #44H MOV A , R0 MOV 21H,A【解】【解】仿照上例的分析過程:源程序源程序還原簡記符還原簡記符指令功能指令功能推算結果推算結果MOV R0,#44H MOV Rn,#data Rn#dataR7#44HMOV A,R0MOV A,RiA(Ri)A44H = #07HMOV 21H,AMOV direct,Adi
15、rectA21HA= #07H答案答案:上述程序段執行后,21H單元的結果為#07H。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注:MOV A,R0(機器碼E6H)工作原理工作原理:根據機器碼E6H先找到片內RAM中R0里存放的內容44H,然后以44H為RAM地址將其保存的內容07H傳送給A。R0里存放的是操作數的地址,而不是操作數結果。利用寄存器作為地址指針地址指針間接查找操作數的做法稱為寄存器間接尋址寄存器間接尋址可以進行間接尋址的寄存器稱為間址寄存器 R0、R1和DPTR是51單片機僅有的三個間址寄存器 物理與材料科學學院 第3章單片機的
16、匯編語言與程序設計單片機原理及應用單片機原理及應用屬于寄存器間接尋址方式的傳送類指令 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例3:已知ROM 2040H內容為27H,試分析如下程序段并指出其功能。MOV DPTR,#2010H MOV A,#30H MOVC A,A+DPTRMOV 30H,A【解】仿照上例的分析過程:源程序還原簡記符指令功能推算結果MOV DPTR,#2010HMOV DPTR,#data16DPTR#data16DPTR#2010HMOV A,#30HMOV A,#dataA#dataA#30HMOVC A,A+DPTRMOV
17、C A,A+DPTRA(A+DPTR) A(2040H)=27HMOV 30H,AMOVdirect,AdirectA30HA =27H答案答案:將ROM 2040H單元的內容送到片內RAM 30H單元中。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注:MOVC A,A+DPTR(機器碼93H)工作原理工作原理:根據機器碼93H先找出A中存放的內容30H,再找出DPTR中存放的內容2010H,然后以這兩項內容之和2040H為ROM地址,將其存放的內容27H交給A。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應
18、用利用兩個寄存器內容之和進行間接查找操作數的做法稱為變址尋址變址尋址;A為變址寄存器,DPTR為基址寄存器;PC也可作為基址寄存器,相應指令為MOVC A,A+PC,可實現A(A+PC)的功能。MOVC A,A+DPTR也具有寄存器間接尋址功能,但該操作數的地址是利用A與DPTR兩個寄存器內容之和間接取得的,A(A+DPTR) 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述3.2 MCS-51指令系統簡介 3.2.1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運
19、算及移位類指令 3.2.4 控制轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用算術運算類指令算術運算類指令 可實現加、減、乘、除和增可實現加、減、乘、除和增1、減、減1等運算功能等運算功能 (24條) 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用算術運算類指令共有8種操作碼:ADD用于不帶進位加法ADDC用于帶進位加法SUBB用于帶借位減法INC和DEC用于加1和減1MUL用于乘法DIV用于除法 DA用于十進制加
20、法調整 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用特點特點:除加1和減1外,都需以累加器A為目的操作數;一般都會影響PSW中的CY、AC、OV和P四個標志位。AC算術運算類指令快捷記憶法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例4:試解讀如下程序并說明其實現的主要功能MOV A,#34HADD A,#0E7HMOV 40H,AMOV A,#12HADDC A,#0FHMOV 41H,A【解】指令分析過程如下:源程序源程序推算結果推算結果MOVA,#34HA#34H ADDA,#0E7HA#34H+#0E7
21、H A=#1BH,CY=1MOV 40H,A40HA = #1BHMOVA,#12HA#12HADDC A,#0FHA#12H+#0FH+CY A=#22H, C= 0 MOV 41H,A41H A = #22H 答案答案:實現兩個16位數(1234H與0FE7H)的加法運算,并將結果221BH存入片內RAM 40H41H單元。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注:MOV A,#34H(機器碼7434H)工作原理工作原理:根據機器碼7434H將指令中包含的立即數34H送到累加器A中。這類指令的操作數就存在于指令自身之中;這種以指令中存在
22、的立即數(#data或#data16)作為操作數的做法稱為立即尋址立即尋址。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例5:試解讀如下程序并說明其功能MOVA,#17HMOVB,#68HMULABMOV30H,AMOV31H,B【解】分析過程如下:源程序源程序推算結果推算結果MOV A,#17HA#17HMOV B,#68HB#68HMUL ABABBA B=#9 A=#58HMOV 30H,A30HA = #58HMOV 31H,B31HB = #9答案答案:實現兩個8位數(17H與68H)的乘法運算,并將乘積958H的高8位和低8位分別存入片內
23、RAM 31H和30H單元。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述3.2 MCS-51指令系統簡介 3.2.1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運算及移位類指令 3.2.4 控制轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用邏輯運算及移位類指令邏輯運算及移位類指令 可實現可實現與、或、異或、求反、置與
24、、或、異或、求反、置1、清、清0、移位等、移位等功能功能(34條) 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用邏輯運算及移位類指令共有10種操作碼:ANL用于邏輯與運算ORL用于邏輯或運算XRL用于邏輯異或運算SETB和CLR用于置1和清0CPL用于取反RL和RR于循環左移和循環右移 RLC和RRC用于帶C循環左移和帶C循環右移 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用特點特點:字節運算以A為目的操作數(#data與direct的運算例外),位運算以C為目的操作數。CLRCPLCLRSETB邏輯運算指令快捷記
25、憶法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用特點特點:只能針對A進行操作 左移1位相當于乘2,右移1位相當于除2 。功能功能:對累加器A進行循環移位操作 循環移位指令的四種移位關系 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例6:試解讀如下程序并說明其功能。 ANLA,#0FHANLP1,#0F0HORLP1,A邏輯或的特性邏輯或的特性:x 0 = x(屏蔽屏蔽);x 1 = 1(置位置位)邏輯與的特性邏輯與的特性:x 0 = 0(清零清零);x 1 = x(屏蔽屏蔽)【解】分析過程如下:源程序源程序推算
26、結果推算結果ANL A,#0FHAA00001111B A = #0000 xxxxBANL P1,#0F0HP1P111110000B P1= #XXXX0000BORL P1,AP1P1A P1= #XXXXxxxxB答案答案:把累加器A的低4位送入P1口的低4位,而P1口的高4位保持不變,即實現了A和P1的數據組合。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例7:試解讀如下程序并說明其功能。RL A MOV R0,A RL A ADD A,R0【解】本例中用到的RL A指令是不帶C的循環左移源程序源程序推算結果推算結果RL A循環左移一位(相
27、當于A2)MOV R0,AR0 A(保存 A2的值)RL A再次循環左移一位(相當于A4)ADD A,R0A A+R0(相當于 A2 + A4)= A6答案答案:利用移位指令實現了累加器A的內容乘6 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例8:試解讀如下程序并說明其功能。MOV A,40HCPL AINC AMOV 40H,A【解】分析過程如下:源程序源程序推算結果推算結果MOV A,40HA 40HCPL AA /AINC AA A+1MOV 40H,A40H A 答案答案:對片內RAM 40H單元中的內容取反加1,結果仍送回40H單元 。 物
28、理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注:MOV 40H,A(機器碼F540H)工作工作原理原理:根據機器碼F540H將A中存放的內容1BH存放到RAM的40H單元。MOV 40H,A指令的操作數地址操作數地址就存在于指令自身中;以指令中存在的片內RAM地址(direct)作為操作數地址的做法稱為直接尋址直接尋址;direct是片內RAM的低128字節地址,也可是SFR名稱或SFR的字節地址;例如MOV P0,A與MOV 80H,A都屬于直接尋址。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語
29、言概述3.2 MCS-51指令系統簡介 3.2.1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運算及移位類指令 3.2.4 控制轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用控制轉移類指令控制轉移類指令 通過改變程序計數器通過改變程序計數器PC值值,實現程序轉移功能,實現程序轉移功能 (22條) 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及
30、應用控制轉移類指令共有18種操作碼: AJMP、SJMP、LJMP、JMP用于無條件轉移 ACALL和LCALL用于子程序調用 RET和RETI用于子程序和中斷返回 JZ、JNZ、CJNE和DJNZ用于字節條件轉移 JC、JNC、JB、JNB和JBC用于位條件轉移 NOP用于空操作 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用功能功能:根據轉移地址修改PC當前值;轉移地址轉移地址:LJMP16位;AJMP11位; SJMP8位; JMP16位特點特點:前三項都可用語句標號代替具體地址; (例如 LJMP START 或 SJMP ) 第四項為變址尋址轉移
31、指令 PCA+DPTR無條件轉移 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用功能功能:根據轉移地址(rel )修改PC當前值;特點特點:rel值為-128127,可用語句標號代替; 例如 JC SMALL以 rel表示操作數的存在方式相對尋址相對尋址 條件轉移指令快捷記憶法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例9:編程實現如下功能: 比較片內RAM的30H和40H單元中兩個無符號數的大小,并將大數存入50H,小數存入51H,若兩數相等則使位單元7FH置1。【解】由于指令CJNE具有利用減法判斷雙方關系
32、且影響C標志位的特點,故可采用先根據CJNE進行一次跳轉,然后再根據C進行二次跳轉的做法。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例9 仿真程序 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注: SJMP FINISH(機器碼800EH)這種利用偏移量rel修正轉移目標地址的做法稱為相對尋址相對尋址 工作原理工作原理:根據機器碼800EH,由PC當前值0009H和指令中含有的偏移偏移量量0EH得到PC修正后的目標地址0017H(=0009H+0EH),從而引導程序轉向FINISH語句行。* rel值由
33、匯編系統根據行號FINISH算出 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例10:編程實現如下功能:將存放在片內RAM 20H單元開始的10個數連續傳送到片外RAM 50H單元開始的地址處。Rn 0 ?是 PCPC+rel 順序執行下條指令 Rn Rn - 1【解】 思路分析:將R1作為指向外部RAM的低8位地址(50H起)寄存器,P2作為指向外部RAM的高8位地址(00H)寄存器。利用Rn作為循環計數器,配合DJNZ指令進行操作。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 MOV R0,#20H ; 片
34、內RAM數據塊指針R0賦初值 MOV R1,#50H ; 片外RAM數據塊指針R1賦初值 MOV R3,#0AH ;計數器賦初值 MOV P2,#0; 高8位地址由P2提供,賦初值0LAB: MOV A,R0 ; 利用A做中間交換單元 MOVX R1,A ;傳送到片外RAM INC R0; 指針R0加1刷新 INC R1 ; 指針R1加1刷新 DJNZ R3,LAB ; R3減1,判斷循環是否結束利用DPTR進行片外RAM尋址 MOV R0,#20H ;片內RAM數據塊指針R0賦初值 MOV DPTR,#50H ;片外RAM數據塊指針DPTR賦初值 MOV R3,#0AH ;計數器賦初值LAB
35、: MOV A,R0 ;利用A做中間交換單元 MOVX DPTR,A ;傳送到片外RAM INC R0 ; 指針R0加1刷新 INC DPTR ; 指針DPTR加1刷新 DJNZ R3,LAB ;R3減1,判斷循環是否結束利用R1和P2進行片外RAM尋址 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例11:試分析如下延時子程序延時子程序可實現的延時量(設系統采用12MHz晶振)。 DEL50: MOV R7,#200DEL1: MOV R6,#125DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET;循環125次;循環200次 ;返
36、回語句【解解】12MHz晶振時對應的機器周期為1s。查手冊可知,指令DJNZ需要占用機時為2s,MOV為1 s ,則改子程序的總延時量應為: (2125+1+2)200+1 = 50.601ms答案答案:該子程序的軟件延時量約為50毫秒。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用實例12:編程將A中的并行數據轉換為串行數據,并通過P1.0口輸出。要求數據輸出時高位在先。 MOV R2,#8;計數器初值CLR C;CY清零NEXT: RLC A ;數據移位至CY中 MOV P1.0,C ;從P1.0輸出串行數據 DJNZ R2,NEXT;若轉換未完,繼
37、續【解】利用帶進位循環和循環控制指令可實現并/傳轉換 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用關注關注:CLR C(機器碼C3H)這種利用位地址bit作為指令操作數的做法稱為位尋址;位尋址;bit可以是片內RAM可位尋址區內的位地址,也可以是SFR中的位地址或位名稱;該程序的第二和第四條指令都屬于位尋址方法。工作原理工作原理:根據機器碼C3H,將進位標志CY的值清零。由于CY具有0D7H位地址,因而CLR C與CLR 0D7H具有同等功能。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述3.2
38、MCS-51指令系統簡介 3.2.1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運算及移位類指令 3.2.4 控制轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用尋址方式是對操作數存在規律的歸納,一條指令究竟屬于哪種尋址方式往往并不重要,也不會影響它的使用,因而不必過意追究。51單片機共有七種尋址方式: 直接尋址、寄存器尋址、寄存器間接尋址、立即尋址、 變址尋址、位尋址、相對尋
39、址。尋址方式越多,單片機的功能就越強;CPU取得操作數的方法稱為尋址方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(1)直接尋址)直接尋址 指令中包含direct形式操作數的尋址方式稱為直接尋址direct既可以是片內RAM的低128字節地址,也可以是除A、B、C、DPTR外的其它特殊功能寄存器名。 MOV 40H, A ;指令原形 MOV direct,A 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(2)寄存器尋址)寄存器尋址 指令中包含通用寄存器通用寄存器形式操作數的尋址方式稱為寄存器尋址通用寄存器只能是
40、Rn,A,B,CY和DPTR五種類型MOV A,R1 ;指令原形 MOV A,Rn 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(3)寄存器間接尋址)寄存器間接尋址 MOV A, R0 ;指令原形 MOV A,Ri指令中包含“間址寄存器間址寄存器”形式操作數的尋址方式稱為寄存器間接尋址間址寄存器只能由R0、R1或DPTR三個寄存器兼任 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用MOV A, #44H;指令原形 MOV A,#data(4)立即尋址)立即尋址 指令中包含#data或#data16形式操作數的尋址方式
41、稱為立即尋址 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(5)變址尋址)變址尋址 MOVC A, A+DPTR ;A(A+DPTR)指令中包含“A+基址寄存器基址寄存器”形式操作數的尋址方式稱為變址尋址方式基址寄存器只能由DPTR或PC兼任兼任 MOVC A,A+PCMOVC A,A+DPTRJMP A, A+DPTR僅有3條變址尋址指令 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用MOV C, 2FH ; 指令原形 MOV C,bit SETB 0E0H ; 指令原形 SETB bitCLR P1.0 ; 指令
42、原形 CLR bit(6)位尋址)位尋址 指令中包含bit形式操作數的尋址方式稱為位尋址方式bit形式的位地址可以是片內RAM中的位地址,也可以是SFR中的位地址或位名稱 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(7)相對尋址)相對尋址 SJMP FINISH; 指令原形 SJMP rel指令中包含rel形式操作數的尋址方式稱為相對尋址方式rel可以是片內RAM或ROM地址偏移量的形式,也可以是標號的形式。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述3.2 MCS-51指令系統簡介 3.2.
43、1 數據傳送與交換類指令數據傳送與交換類指令 3.2.2 算術運算類指令算術運算類指令 3.2.3 邏輯運算及移位類指令邏輯運算及移位類指令 3.2.4 控制轉移類指令控制轉移類指令 3.2.5 尋址方式尋址方式 3.2.6 偽指令偽指令3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.2.5.偽指令偽指令 匯編語言指令的兩類指令:n硬指令硬指令(指令性語句)匯編后可以產生機器 碼的指令,如前介紹的111條指令;n偽指令偽指令(指示性語句)用于指示匯編系統軟件要完成的操作 ,一般不產生機器碼常用的偽指令: ORG、END、EQU、
44、DATA、BIT、DB 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用 MCS-51常用偽指令 偽指令名稱格式功能描述ORG(Oringin)程序起始地址ORG 16位地址用于定義匯編程序或數據在ROM中存放的起始地址EQU(Equate)等值指令標識符 EQU 數或匯編符號用于將一個數值或匯編符號賦給該標示符DATA(Data)數據地址賦值標識符 DATA 內存字節地址用于將一個內部 RAM 的地址賦給該標示符BIT(Bit)位地址賦值標識符 DATA 位地址或位名稱用于將一個位地址或位名稱賦給該標示符DB(Define Byte)定義字節標號: DB
45、用于把項或項表中的字節(8位)數值依次存入標號開始的存儲單元中END(End)結束匯編END用于指示匯編源程序段結束 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(1)ORG(= origin)格式:ORG xxxx(16位地址)功能:用于定義匯編程序或數據在ROM中存放的首地址舉例: ORG 100H START: MOV A,R4 MOV B,A : ORG后面第1條指令的首地址為100H,即START的值為100H。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(2)EQU(= equate)格式:標示符標示
46、符 EQU 數值或匯編符號數值或匯編符號功能:用于將一個數值或匯編符號賦給該標示符舉例:ADDR EQU 2000H ;將2000H賦予 ADDR ADDR EQU MEM2 ;將MEM2賦予 ADDR說明說明: 第2條語句的匯編符號MEM2必須是已賦值過的 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(3)DATA(= data)格式:標示符標示符 DATA 內部內部RAM地址或表達式地址或表達式功能:用于將一個內部 RAM 的地址賦給該標示符舉例: COUNT DATA 50H ;將50H賦予 COUNT COUNT EQU 50H ;將50H賦予
47、COUNTEQU與與DATA區別區別: 1)EQU須先定義后使用,而DATA可無須如此。 2)EQU可用于匯編符號,而DATA不能。 3)DATA可用于表達式,而EQU不行。 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(4)BIT(= bit)格式:標示符標示符 BIT 位地址或位名稱位地址或位名稱功能:用于將一個位地址或位名稱賦給該標示符舉例: KEY1 BIT P1.0 ;將P1.0賦予KEY1 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(5)DB(= define byte)格式:標號標號: DB n1,
48、n2,ni功能:用于定義以字節為單位以字節為單位的常數表規則: ”ni”按順序存在標號地址開始的單元中; 常數之間用英文逗號分開,最后一個不要逗號例如: JPH: DB 12H,20H,35H,40H,58H 表示字節常數12H將放置在JPH語句標號對應的ROM地址處,其它常數依此順延排列 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用(6)END(= end)格式:END功能:用于表示匯編程序到此結束說明:放在源程序的最后一行,并只允許有一個END 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用3.1匯編語言概述 3.2指令系統簡介 3.3匯編語言的編程方法 物理與材料科學學院 第3章單片機的匯編語言與程序設計單片機原理及應用單片機原理及應用匯編語言程序設計步驟匯編語言程序設計步驟 分析問題,確定算法或解題思路 畫程序流程圖編寫匯編程序程序調試與修改用匯編語言進行程序設計的過程和用高級語言進行程序設計的過程類似,一般需要經過以下幾個步
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北省定州市輔警招聘考試試題題庫及參考答案詳解1套
- 2025年STEAM教育在中小學推廣中的學生個性化學習方案研究報告
- 2024年演出經紀人之演出經紀實務考試題庫含答案(b卷)
- 第9.5課 《蘇幕遮》(同步課件)-【中職專用】2024-2025學年高一語文課堂(高教版2023·基礎模塊下冊)
- 輸血質量管理提升
- Brand KPIs for online betting:Mostbet in India-英文培訓課件2025.5
- 初中數學九年級下冊統編教案 6.1圖上距離與實際距離
- 臺州天臺裘鳳 110 千伏輸變電工程項目水土保持方案報告表
- 融合DeepSeek大模型技術的數字糧倉智慧糧庫糧儲數字化監管系統建設方案
- Do-cker容器技術與高可用實戰肖睿試卷答案
- 2025年江蘇省鎮江市新區中考數學二模試卷
- 前臺訂機票管理制度
- 地理-美國 課件-2024-2025學年人教版七年級下冊地理
- GB/T 30134-2025冷庫管理規范
- 2025年安徽省合肥八中高考最后一卷地理試題及答案
- 浪潮新員工培訓體系大綱
- 2025年7月浙江省普通高中學業水平考試歷史仿真模擬卷01(含答案)
- 安徽省合肥市45中學2025屆七年級數學第二學期期末監測模擬試題含解析
- 中學生成就目標導向下的學習滿意度影響機制探討
- 預防醫學知識試題及答案匯編
- 法人變更交接協議書
評論
0/150
提交評論