單片機匯編語言程序設計2ppt課件_第1頁
單片機匯編語言程序設計2ppt課件_第2頁
單片機匯編語言程序設計2ppt課件_第3頁
單片機匯編語言程序設計2ppt課件_第4頁
單片機匯編語言程序設計2ppt課件_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、4.2.5 分支程序設計分支程序的特點是程序中包含有轉移指令。按能否經過條件判別來進展轉移 無條件轉移 條件轉移按轉移分支數目 單分支程序 多分支程序1。單分支程序利用條件轉移指令實現條件成立否?YN 【例】 求單字節有符號二進制數的補碼。待求數據在內部RAM的30H單元,結果存放在內部35H普通這類功能程序作為子程序NEG_SUB: PUSH ACC PUSH PSW MOV A , 30H JNB ACC.7 , NCH MOV C , ACC.7 CLR ACC.7 CPL A ADD A , #1NEG01: MOV 35H, A ;保管結果 POP ACC POP PSW RET對于

2、多字節求補碼?普通運用間接尋址。例如對4字節補碼,待求數據在30H開場內部RAM,結果存放在同一地址。主程序運用存放器0區,子程序運用1區。同樣先判別符號開場開場維護現場R0#30hR0=(R0)+3AR0ACC.7=1?Acc.7=0R0(A)R0=R0-3R2#4SETB CAR0CPL AADDC A,#0(R0)(A)R0(R0)+1(R2)-1=0?恢復現場retNEG_SENDNEG_S01最高位=1,負數取最高位恢復地址指向最低位符號位取反,最高位存回去循環次數=4置C=1,完成+1運算從最低字節開場取反,帶進為+0運算,由于最低位已使C=1,故可實現最低位+1修正地址指向下一字

3、節保管該字節結果循環判別開場維護現場R0#30hR0=(R0)+3AR0ACC.7=1?Acc.7=0R0(A)R0=R0-3R2#4SETB CAR0CPL AADDC A,#0(R0)(A)R0(R0)+1(R2)-1=0?恢復現場retNEG_SENDNEG_S02NEG_S01代碼NEG_SUB:PUSH ACCPUSH PSWSETB RS0;置1區CLR RS1MOV R0, #33HMOV A,R0JB ACC.7, NEG_S01LJMP NEG_SENDNEG_S01:CLRACC.7MOV R0,AMOV R0,#30HMOV R2,#4SETB CNEG_S02: MOV

4、 A,R0CPLAADDC A,#0MOV R0,AINCR0DJNZ R2, NEG_S02NEG_SEND: POP PSWPOPACCRET恢復PSW,就恢復任務存放器0區2。二分支轉移利用單重轉移可是實現多重轉移結果用原碼表示。+數0條件1條件2條件3條件4功能分支1功能分支2功能分支3功能分支4功能分支5功能分支53 多分支轉移程序4。散轉數字分別存放在兩個數據緩沖區,運算符號用編碼存放在KB_BUF,開場Sp00D0H初始化KB_SUBAKB_BUFAKB_BUFAKB_BUFAKB_BUFAKB_BUFDISP_SUBM_LOOPT_END參考程序如下:ORG 0LJMP STA

5、RTORG 0100HSTART: MOV SP,#0D0H LCALL INIT_SUB ;初始化子程序M_LOOP:LCALL KB_SUB;鍵盤處置子程序,數字鍵;存放在數字緩沖區中,運算符號存放在KB_BUF,MOV DPTR, #TABLECLR CMOV A, KB_BUF AND A,#03HMOV B.#6 MUL AB JMP A+DPTRTABLE: LCALL ADD_SUB;調加法子程序 LJMP T_END LCALL SUB_SUB;調減子程序 LJMP T_END LCALL MUL_SUB;調乘法子程序 LJMP T_END LCALL DIV_SUB ;調除法

6、子程序 LJMP T_END T_END: LCALL DISP_SUB LJMP M_LOOP 各功能子程序ADD_SUB: RETSUB_SUB: RETMUL_SUB:RETDIV_SUB:RETEND 【例】利用查表的方法編寫Y= X2 (X=0,1,29 )的程序。編程闡明: 設變量X的值存放在內存30H單元中,變量Y的值存入內存31H單元。 先用查表指令MOVC A, A+DPTR 編寫程序參考程序1; 再用查表指令MOVC A , A+PC 編寫程序見參考程序2。4.2.6查表程序設計END匯編程序自動轉換成對應的ASCII相當于DB 30H,31H,32H,33H,34H,35HDB 36H,37H,38H,39H,41H,42HDB 43H,44H,45H,46H假設a,b不限制它小于9,那么它們的平方能夠

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論