一些常用的51汇编子程序库_第1页
一些常用的51汇编子程序库_第2页
一些常用的51汇编子程序库_第3页
一些常用的51汇编子程序库_第4页
一些常用的51汇编子程序库_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、;51汇编子程序库*;/子程序库 /;*;(5示号:MULD;功能:双字节二进制无符号数乘法;入口条件:被乘数在R2、R3中,乘数在R6、R7中。 出口信息乘积在R2、 R3、R4、R5 中。;影响资源:PSW、A、B、R2R7;堆栈需求:2字节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;功能:双字节二进制无符号数除法;入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。 出口信 息:OV=0时,双字节商在R4、R5中,OV=1时溢出。 影响资源:PSW、A、B、 R1R7;堆栈需求:2字节DIVD: CLR C ;比较被除数和除数MOV A,R3SUBB A,R7MOV A,R2SUBB A,R6JC DVD1SETB OV ;溢出

3、RETDVD1: MOV B,#10H ;计算双字节商DVD2: CLR C ;部分商和余数同时左移一位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 ;够减,存放新的余数MOV A,R1MOV R3,AINC R5商的低位置一DVD3: DJNZ B,DVD2 ;计算完十六位商(R4R5CLR OV

4、;设立成功标志RET;(标号:DV31;功能:三字节二进制无符号数除以单字节二进制数;入口条件:被除数在R3、R4、R5中,除数在R7中。;出口信息:OV=0时,双字节商在R4、R5中,OV=1时溢出。影响资源:PSW、 A、B、R2R7;堆栈需求:2字节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;功能:单字节十六进制整数转换成单字节BCD码整数;入口条件:待转换的单字节十六进制整数在累加器A中。出口信息转换后的BCD码整数十位和个位仍在累加器A中,百位在R3中。 影响资源:PSW、A、B、R3;堆栈需求:2字节HBCD: MOV B,#100 ;分离出百位,存放在R3中DIV

6、ABMOV R3,AMOV A,#10 ;余数继续分离十位和个位XCH A,BDIV ABSWAP AORL A,B ;将十位和个位拼装成BCD码RET;(1标号:HB2;功能:双字节十六进制整数转换成三字节BCD码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。;出口信息转换后的三字节BCD码整数在R3、R4、R5中。影响资源:PSW、A、R2R7;堆栈需求:2字节HB2: CLR A ;BCD码初始化MOV R3,AMOV R4,AMOV R5,AMOV R2,#10H ;转换双字节十六进制整数HB3: MOV A,R7 ;从高端移出待转换数的一位到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 ;双字节十六进制数的万位数不超过6,不用调整DJNZ R2,HB3 ;处 理完16bitRET;(2标号:BCDH;功能:单字节BCD码整数转换成单字节十六进制整数;入口条件:待转换的单字节BCD码整数在累加器A中。出口信息转换后的单字节十六进制整数仍在累加器A中。影响资源:PSW、A、B、R4;堆栈需求:2字节BCDH: MOV B,#10H ;分离十位和个位DIV ABMOV R4,B ;暂存个位MOV B,#10 ;将十位转换成十六进制MUL ABADD A,R4 ;按十六进制加上个位RET;(2标号:BH2;功能:双字节BCD码整数转换成双字节十六进制整数入口条件待转换的双字节BCD码整数在R2、R3中。;出口信息:转换后的双字节十六进制整数仍在R2、R3中。影响资源:PSW、A、B、R2、R3、R4;堆栈需求:4字节LCALL B

温馨提示

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

评论

0/150

提交评论