mcs-51单片机实用子程序库六(编辑修改稿)内容摘要:

MUL0 ;进行乘法运算 SJMP PLN1 ;继续下一项运算 (19) 标号: FLOG 功能:以10为底的浮点对数函数 入口条件:操作数在 [R0]中。 出口信息: OV=0 时,结果仍在 [R0]中, OV=1 时,负数或零求对数出错。 影响资源: DPTR、 PSW、 A、 B、 R2~ R位 1EH、 1FH 堆栈需求 :9字节 FLOG: LCALL FLN ;先以e为底求对数 JNB OV,LOG RET ;如溢出则停止计算 LOG: MOV R5,0FFH;系数0.43430(1/Ln10) MOV R6,0DEH MOV R7,5CH LCALL MUL1 ;通过相乘来换底 LJMP MOV0 ;传回结果 (20) 标号: FLN 功能:以e为底的浮点对数函数 入口条件:操作数在 [R0]中。 出口信息: OV=0 时,结果仍在 [R0]中, OV=1 时,负数或零求对数出错。 影响资源: DPTR、 PSW、 A、 B、 R2~ R位 1EH、 1FH 堆栈需求: 7字节 FLN: LCALL MVR0 ;将 [R0]传送到第一工作区 JB 1FH,LNOV;负数或零求对数,出错 MOV A,R3 ORL A,R4 JNZ LN0 LNOV: SETB OV RET LN0: CLR C LCALL RL1 ;左规一次 CLR A XCH A,R2 ;保存原阶码,清零工作区的阶码 PUSH ACC LCALL RLN ;规格化 LCALL MOV0 ;回传 LCALL FPLN ;用多项式计算尾数的对数 DB 7BH,0F4H,30H;0.029808 DB 0FEH,85H,13H;-0.12996 DB 7FH,91H,51H;0.28382 DB 0FFH,0FAH,0BAH;-0.4897 DB 0,0FFH,0CAH;0.99918 DB 70H,0C0H,0;1.1442 10 5 DB 40H ;结束 POP ACC ;取出原阶码 JNZ LN1 RET ;如为零,则结束 LN1: CLR 1EH ;清第二区数符 MOV C, MOV F0,C ;保存阶符 JNC LN2 CPL A ;当阶码为负时,求其绝对值 INC A LN2: MOV R2,A ;阶码的绝对值乘以0.69315 MOV B,72H MUL AB XCH A,R2 MOV R7,B MOV B,0B1H MUL AB ADD A,R7 MOV R7,A ;乘积的尾数在 R6R7R2 中 CLR A ADD。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。