51单片机汇编程序集2._第1页
51单片机汇编程序集2._第2页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、辛普生积分程序 内部 RAM 数据排序程序(升序外部 RAM 数据排序程序(升序外部 RAM 浮点数排序程序(升序BCD 小数转换为二进制小数(2位BCD 小数转换为二进制小数(N 位BCD 整数转换为二进制整数(1 位BCD 整数转换为二进制整数(2 位BCD 整数转换为二进制整数(3 位BCD 整数转换为二进制整数(N 位二进制小数(2 位转换为十进制小数(分离 BCD 码二进制小数(M 位转换为十进制小数(分离 BCD 码二进制整数(2 位转换为十进制整数(分离 BCD 码二进制整数(2 位转换为十进制整数(组合 BCD 码二进制整数(3 位转换为十进制整数(分离 BCD 码二进制整数(

2、3 位转换为十进制整数(组合 BCD 码二进制整数(M 位转换为十进制整数(组合 BCD 码三字节无符号除法程序(R2R3R4/R7=(R2R3R4 余数 R7 辛普生积分程序;入口:DPTR,N,COUNT;占用资源:A CC,R3,R4,R6,R7;堆栈需求:2 字节;出口 : R3,R4SJF : MOV R7,NMOVX A,DPT RINC DPTRMOV R4,AMOV R3,#00HDEC R7SJF1 : MOVX A,DPT R INC DPTRCLR CRLC AMOV R6,ACLR ARLC AXCH A,R7JNB ACC.0,SJF2XCH A,R6RLC AMOV

3、 B,#03HXCH A,R6XCH A,R7RLC AXCH A,R7SJF2 : XCH A,R7XCH A,R6ADD A,R4MOV R4,AMOV A,R6MOV R3,ADJNZ R7,SJF1SJF3 : MOVX A,DPT R ADD A,R4MOV R4,ACLR AADDC A,R3MOV R3,AMOV R7,#COUNT LCALL NMUL21MOV A,NMOV A,R4MUL ABMOV R7,ALCALL NDIV31RETNMUL21 : MOV A,R4 MOV B,R7MUL ABMOV R4,AMOV A,BXCH A,R3MOV B,R7MUL AB

4、MOV R3,ACLR AADDC A,BMOV R2,ACLR OVRETNDIV31 : MOV B,#10H NDV311 : CLR C;出口: R0RLC AMOV R4,AMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV F0,CCLR CSUBB A,R7JB F0,NDV312JC NDV313NDV312 : MOV R2,A INC R4NDV313 : DJNZ B,NDV311 RET;内部 RAM 数据排序程序(升序;入口CC,B,R5,R6,R7;堆栈需求:2 字节R0(起始地址,N(数据个数;占用资源:AMOV R1,BI

5、SELSORT : MOV R7,N DEC R7ISST1: MOV A,R7MOV R6,AMOV A,R0MOV R1,AMOV R2,AMOV B,R1ISST2: INC R1MOV A,R1CLR CSUBB A,BJC ISST3MOV A,R1MOV R2,AMOV B,R1ISST3: DJNZ R6,ISST2XCH A,R1MOV B,R2ESST2: INC DPT RMOV R1,ADJNZ R7,ISST1RET;外部 RAM 数据排序程序(升序;入口:A DDPH,ADDPL (起始地址,N (数据个数;占用资源:A CC,B,R0,R1,R5,R7;堆栈需求:2

6、 字节;出口:A DDPH-ADDPLESELSORT : MOV R7,NDEC R7ESST1: MOV A,R7MOV R6,AMOV DPL,ADDPLMOV R1,DPLMOV DPH,ADDPHMOV R0,DPHMOVX A,DPT RMOV B,AMOVX A,DPT RSUBB A,BJC ESST3MOV R0,DPLMOV R1,DPHMOVX A,DPT RMOV B,AESST3: DJNZ R6,ESST2MOVX A,DPT RXCH A,BMOVX DPT R,AMOV DPL,R0MOV DPH,R1MOV A,BMOVX DPT R,ADJNZ R7,ESS

7、T1RET;外部 RAM 浮点数排序程序(升序;入口:A DDPH,ADDPL(起始地址,N(数据个数;占用资源:A CC,B,R0,R1,R2,R3,R4,R5,R6,R7,NCNT ;堆栈需求:5 字节;出口:A DDPH,ADDPLFSORT: MOV A,NMOV NCNT,ADEC NCNTFST1 : MOV B,NCNT MOV DPL,ADDPL MOV R1,DPLMOV DPH,ADDPH MOV R0,DPH MOVX A,DPT R MOV R2,AINC DPTRMOVX A,DPT R MOV R3,AINC DPTRMOVX A,DPT R MOV R4,AFST

8、2 : INC DPTR MOVX A,DPT R MOV R5,AINC DPTRMOVX A,DPT R MOV R6,AINC DPTRMOVX A,DPT R MOV R7,APUSH BLCALL FCMPPOP BJNC FST4MOV A,DPLCLR CSUBB A,#02HMOV R1,AMOV R0,DPHJNC FST3DEC R0FST3 : MOV A,R5 MOV R2,AMOV A,R6MOV R3,AMOV A,R7MOV R4,AFST4 : DJNZ B,FST2 MOV A,DPLCLR CSUBB A,#02HMOV DPL,AJNC FST5DEC D

9、PHFST5 : MOV A,R2 MOVX DPT R,A INC DPTRMOV A,R3MOVX DPT R,AINC DPTRMOV A,R4MOVX DPT R,AMOV A,R0MOV P2,AMOV A,R5MOVX R1,AINC R1MOV A,R6MOVX R1,AINC R1MOV A,R7MOVX R1,ADJNZ NCNT,FST1RET;BCD 小数转换为二进制小数(2 位;入口:R0(低位首址,R7;占用资源:A CC,B,R5MOV B,#19H MUL AB;堆栈需求:2 字节;出口 : R3,R4PDT B : CLR AMOV R3,APDB1 : MOV

10、 A,R3 MOV B,#9AH MUL ABMOV R5,BXCH A,R4MOV B,#19H MUL ABADD A,R4MOV A,R5ADDC A,BMOV R5,AMOV A,R0 MOV B,#9AH MUL ABADD A,R5MOV R4,ACLR AADDC A,BXCH A,R3MOV R2,AMOV A,R1ADD A,R4MOV R4,AMOV A,BMOV R3,AMOV A,R0MOV B,#19HMUL ABADD A,R3MOV R3,ADEC R0DJNZ R7,PDB1RET;BCD 小数转换为二进制小数(N 位;入口:R1(低位首址,M,N;占用资源:A

11、 CC,B,R2,R3,R7;堆栈需求:2 字节;出口: R0PDT BMN : MOV A,R0MOV R3,AMOV B,NCLR APDBMN1 : MOV R0,AINC R0DJNZ B,PDBMN1MOV A,NSWAP ARR AMOV R7,APDBMN2 : MOV A,R2 MOV R0,AMOV A,R3MOV R1,AMOV B,MCLR CPDBMN3 : MOV A,R1 ADDC A,R1DA AJNB ACC.4,PDBMN4 SETB CCLR ACC.4IDB11: MOV A,R4MOV B,#0AHPDBMN4 : MOV R1,A INC R1DJNZ

12、 B,PDBMN3MOV B,NPDBMN5 : MOV A,R0 RLC AMOV R0,AINC R0DJNZ B,PDBMN5DJNZ R7,PDBMN2MOV A,R2MOV R0,ARET;BCD 整数转换为二进制整数(1 位;入口 : R0(高位地址,R7;占用资源:A CC,B;堆栈需求:2 字节;出口: R4IDTB1: CLR AMOV R4,AMOV A,BMUL ABADD A,ROINC ROMOV R4,ADJNZ R7,IDB11RET;BCD 整数转换为二进制整数(2 位;入口:R0(高位地址,R7;占用资源:A CC,B;堆栈需求:2 字节;出口 : R3,R4

13、IDTB2: CLR AMOV R3,AMOV R4,AIDB21: MOV A,R4MOV B,#0AHMUL ABMOV R4,AMOV A,BXCH A,R3MOV R3,AMOV R4,AMOV B,#0AHMUL ABADD A,R3MOV R3,AMOV A,R4ADD A,R0INC R0MOV R4,ACLR AADDC A,R3MOV R3,ADJNZ R7,IDB21RET;BCD 整数转换为二进制整数(3 位;入口:R0(高位地址,R7;占用资源:A CC,B;堆栈需求:2 字节;出口 : R2,R3,R4 IDTB3: CLR A MOV R2,AIDB31: MOV

14、A,R4 MOV B,#0AH MUL ABMOV R4,AMOV A,BXCH A,R3MOV B,#0AH MUL ABADD A,R3MOV R3,ACLR AADDC A,BXCH A,R2MOV B,#0AH MUL ABADD A,R2MOV R2,AMOV A,R4ADD A,R0INC R0MOV R4,ACLR AADDC A,R3MOV R19,AMOV A,MMOV R3,ACLR AADDC A,R2MOV R2,ADJNZ R7,IDB31RET;BCD 整数转换为二进制整数(N 位;入口:R1(高位地址,M,N;占用资源:A CC,B,R2,R7,NCNT,F0 ;

15、堆栈需求:2 字节;出口: R0IDTBMN : MOV A,R0MOV R2,AMOV B,NCLR AIDBMN1 : MOV R0,AINC R0DJNZ B,IDBMN1MOV A,R2MOV NCNT,AIDBMN2 : MOV R7,N CLR ACLR F0IDBMN3 : XCH A,R0 MOV B,#0AHMUL ABMOV C,F0ADDC A,R0MOV F0,CMOV R0,AINC R0MOV A,BDJNZ R7,IDBMN3 MOV A,R2MOV R0,AMOV A,R1INC R1ADD A,R0MOV R0,ADJNZ NCNT,IDBMN2 RET;二进

16、制小数(2 位转换为十进制小数 份离 BCD 码;入口:R3,R4,R7MOV R0,A;占用资源:A CC,B ;堆栈需求:3 字节;出口: R0PBT D : MOV A,R7PUSH APBD1 : MOV A,R4MOV B,#0AHMUL ABMOV R4,AMOV A,BXCH A,R3MOV B,#0AHMUL ABADD A,R3MOV R3,ACLR AADDC A,BINC R0MOV NCNT,ADJNZ R7,PBD1POP AMOV R7,AMOV A,R0CLR CSUBB A,R7MOV R0,ARET;二进制小数(M 位转换为十进制小数(分离 BCD 码;入口:

17、R1,M,N占用资源:A CC,B,R2,R3,R7,NCNT;堆栈需求:2 字节;出口: R0PBT DMN : MOV A,R0MOV R2,AMOV A,R1MOV R3,AMOV A,NPBDMN1 : MOV R7,MCLR ACLR F0PBDMN2 : XCH A,R1MOV B,#0AHMUL ABMOV C,F0ADDC A,R1MOV F0,CMOV R1,AINC R1MOV A,BDJNZ R7,PBDMN2ADDC A,#00HMOV R0,AINC R0MOV A,R3MOV R1,ADJNZ NCNT,PBDMN1MOV A,R2MOV A,R0CLR CMOV

18、R0,ARET;二进制整数(2 位转换为十进制整数 份离 BCD 码;入口:R3,R4;占用资源:A CC,R2,NDIV31;堆栈需求:5 字节;出口:R0,NCNTIBTD21 : MOV NCNT,#00HMOV R2,#00HIBD211 : MOV R7,#0AHLCALL NDIV31MOV A,R7MOV R0,AINC R0INC NCNTMOV A,R3ORL A,R4JNZ IBD211SUBB A,NCNTCLR CMOV R0,ARET;二进制整数(2 位转换为十进制整数(组合 BCD 码;入口:R3,R4;占用资源:A CC,B,R7;堆栈需求:3 字节;出口: R0

19、IBTD22 : MOV A,R0PUSH AMOV R7,#03HCLR AIBD221 : MOV R0,AINC R0DJNZ R7,IBD221POP AMOV R0,AMOV R7,#10HIBD222 : PUSH AMOV A,R4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AMOV B,#03HIBD223 : MOV A,R0ADDC A,R0DA AMOV R0,AINC R0DJNZ B,IBD223POP AMOV R0,ADJNZ R7,IBD222RET;二进制整数(3 位转换为十进制整数 份离 BCD 码;入口:R2,R3,R4;占用资源:A

20、 CC,R2,NDIV31;堆栈需求:5 字节;出口:RO,NCNTIBTD31 : CLR AMOV NCNT,AIBD311 : MOV R7,#0AHLCALL NDIV31MOV A,R7MOV R0,AINC ROINC NCNTMOV A,R2ORL A,R3ORL A,R4JNZ IBD311MOV A,R0CLR CSUBB A,NCNTMOV R0,ARET;二进制整数(3 位转换为十进制整数(组合 BCD 码;入口:R2,R3,R4;占用资源:A CC,B,R7;堆栈需求:3 字节;出口: R0IBTD32 : MOV A,R0PUSH AMOV R7,#04HCLR AI

21、BD321 : MOV R0,A INC R0DJNZ R7,IBD321 POP AMOV R0,AMOV R7,#18HIBD322 : PUSH A CLR CMOV A,R4RLC AMOV R4,AMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV B,#04HIBD323 : MOV A,R0 ADDC A,R0DA AMOV R0,AINC R0 DJNZ B,IBD323 POP A MOV R0,A DJNZ R7,IBD322 RET ;二进制整数(M位转换为十进制整数(组合 BCD 码 入口:R1,M,N ;占用资源:ACC,B,R2,R3,R7 ; 堆栈需求:2 字节;出口:R0 IBTDMN : MOV A,R0 MOV R2,A MOV A,R1 MOVR3,A MOV B,N CLR A IBDMN1 : MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论