一些常用的51匯編子程序庫_第1頁
一些常用的51匯編子程序庫_第2頁
一些常用的51匯編子程序庫_第3頁
一些常用的51匯編子程序庫_第4頁
一些常用的51匯編子程序庫_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、;51匯編子程序庫*;/子程序庫 /;*;(5示號:MULD;功能:雙字節(jié)二進制無符號數(shù)乘法;入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中。 出口信息乘積在R2、 R3、R4、R5 中。;影響資源:PSW、A、B、R2R7;堆棧需求:2字節(jié)MULD: MOV A,R3 ;計算 R3 乘 R7MOV B,R7MUL ABMOV R4,B ;暫存部分積MOV R5,AMOV A,R3 ;計算 R3 乘 R6MOV B,R6MUL ABMOV R4,ACLR AADDC A,BMOV R3,AMOV A,R2 ;計算 R2 乘 R7MOV B,R7MUL ABADD A,R4 ;累加部分積MO

2、V R4,AMOV A,R3ADDC A,BMOV R3,ACLR ARLC AXCH A,R2 ;計算 R2 乘 R6MOV B,R6MUL ABADD A,R3 ;累加部分積ADDC A,BMOV R2,ARET;(標號:DIVD;功能:雙字節(jié)二進制無符號數(shù)除法;入口條件:被除數(shù)在R2、R3、R4、R5中,除數(shù)在R6、R7中。 出口信 息:OV=0時,雙字節(jié)商在R4、R5中,OV=1時溢出。 影響資源:PSW、A、B、 R1R7;堆棧需求:2字節(jié)DIVD: CLR C ;比較被除數(shù)和除數(shù)MOV A,R3SUBB A,R7MOV A,R2SUBB A,R6JC DVD1SETB OV ;溢出

3、RETDVD1: MOV B,#10H ;計算雙字節(jié)商DVD2: CLR C ;部分商和余數(shù)同時左移一位MOV A,R5RLC AMOV R5,AMOV A,R4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AXCH A,R2RLC AXCH A,R2MOV F0,C ;保存溢出位CLR CSUBB A,R7 ;計算(R2R3-R6R7MOV R1,AMOV A,R2ANL C,/F0結果判斷JC DVD3MOV R2,A ;夠減,存放新的余數(shù)MOV A,R1MOV R3,AINC R5商的低位置一DVD3: DJNZ B,DVD2 ;計算完十六位商(R4R5CLR OV

4、;設立成功標志RET;(標號:DV31;功能:三字節(jié)二進制無符號數(shù)除以單字節(jié)二進制數(shù);入口條件:被除數(shù)在R3、R4、R5中,除數(shù)在R7中。;出口信息:OV=0時,雙字節(jié)商在R4、R5中,OV=1時溢出。影響資源:PSW、 A、B、R2R7;堆棧需求:2字節(jié)DV31: CLR CMOV A,R3SUBB A,R7JC DV30SETB OV ;商溢出RETDV30: MOV R2,#10H ;求 R3R4R5/R7-fR4R5DM23: CLR CMOV A,R5RLC AMOV R5,AMOV A,R4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AMOV F0,CCLR

5、CSUBB A,R7ANL C,/F0JC DM24INC R5DM24: DJNZ R2,DM23MOV A,R3 ;四舍五入ADD A,R3JC DM25SUBB A,R7JC DM26DM25: INC R5MOV A,R5INC R4DM26: CLR OVRET ;商在R4R5中;(16示號:HBCD;功能:單字節(jié)十六進制整數(shù)轉換成單字節(jié)BCD碼整數(shù);入口條件:待轉換的單字節(jié)十六進制整數(shù)在累加器A中。出口信息轉換后的BCD碼整數(shù)十位和個位仍在累加器A中,百位在R3中。 影響資源:PSW、A、B、R3;堆棧需求:2字節(jié)HBCD: MOV B,#100 ;分離出百位,存放在R3中DIV

6、ABMOV R3,AMOV A,#10 ;余數(shù)繼續(xù)分離十位和個位XCH A,BDIV ABSWAP AORL A,B ;將十位和個位拼裝成BCD碼RET;(1標號:HB2;功能:雙字節(jié)十六進制整數(shù)轉換成三字節(jié)BCD碼整數(shù);入口條件:待轉換的雙字節(jié)十六進制整數(shù)在R6、R7中。;出口信息轉換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。影響資源:PSW、A、R2R7;堆棧需求:2字節(jié)HB2: CLR A ;BCD碼初始化MOV R3,AMOV R4,AMOV R5,AMOV R2,#10H ;轉換雙字節(jié)十六進制整數(shù)HB3: MOV A,R7 ;從高端移出待轉換數(shù)的一位到CY中RLC AMOV R7,

7、AMOV A,R6RLC AMOV R6,AMOV A,R5 ;BCD碼帶進位自身相加,相當于乘2ADDC A,R5DA A ;十進制調整MOV A,R4ADDC A,R4DA AMOV R4,AMOV A,R3ADDC A,R3MOV R3,A ;雙字節(jié)十六進制數(shù)的萬位數(shù)不超過6,不用調整DJNZ R2,HB3 ;處 理完16bitRET;(2標號:BCDH;功能:單字節(jié)BCD碼整數(shù)轉換成單字節(jié)十六進制整數(shù);入口條件:待轉換的單字節(jié)BCD碼整數(shù)在累加器A中。出口信息轉換后的單字節(jié)十六進制整數(shù)仍在累加器A中。影響資源:PSW、A、B、R4;堆棧需求:2字節(jié)BCDH: MOV B,#10H ;分離十位和個位DIV ABMOV R4,B ;暫存?zhèn)€位MOV B,#10 ;將十位轉換成十六進制MUL ABADD A,R4 ;按十六進制加上個位RET;(2標號:BH2;功能:雙字節(jié)BCD碼整數(shù)轉換成雙字節(jié)十六進制整數(shù)入口條件待轉換的雙字節(jié)BCD碼整數(shù)在R2、R3中。;出口信息:轉換后的雙字節(jié)十六進制整數(shù)仍在R2、R3中。影響資源:PSW、A、B、R2、R3、R4;堆棧需求:4字節(jié)LCALL B

溫馨提示

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

評論

0/150

提交評論