浮点数多项式计算

发布者:大伊山人最新更新时间:2015-02-03 来源: laogu关键字:浮点数  多项式计算  堆栈需求 手机看文章 扫描二维码
随时随地手机看文章
标号: FPLN 功能:浮点数多项式计算

入口条件:自变量在[R0]中,多项式系数在调用指令之后,以40H结束。
出口信息:OV=0时,结果仍在[R0]中,OV=1时,溢出。
影响资源:DPTR、PSW、A、B、R2~R7、位1EH、1FH 堆栈需求: 4字节
FPLN: POP DPH ;取出多项式系数存放地址
POP DPL
XCH A,R0 ;R0、R1交换角色,自变量在[R1]中
XCH A,R1
XCH A,R0
CLR A ;清第一工作区
MOV R2,A
MOV R3,A
MOV R4,A
CLR 1FH
PLN1: CLR A ;读取一个系数,并装入第二工作区
MOVC A,@A+DPTR
MOV C,ACC.7
MOV 1EH,C
MOV C,ACC.6
MOV ACC.7,C
MOV R5,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R6,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R7,A
INC DPTR ;指向下一个系数
MOV C,1EH ;比较两个数符
RRC A
XRL A,23H
RLC A
MOV F0,C ;保存比较结果
LCALL AS1 ;进行代数加法运算
CLR A ;读取下一个系数的第一个字节
MOVC A,@A+DPTR
CJNE A,#40H,PLN2;是结束标志吗?
XCH A,R0 ;运算结束,恢复R0、R1原来的角色
XCH A,R1
XCH A,R0
LCALL MOV0 ;将结果回传到[R0]中
CLR A
INC DPTR
JMP @A+DPTR ;返回主程序
PLN2: MOV A,@R1 ;比较自变量和中间结果的符号
XRL A,23H
RLC A
MOV 1FH,C ;保存比较结果
LCALL MUL0 ;进行乘法运算
SJMP PLN1 ;继续下一项运算

关键字:浮点数  多项式计算  堆栈需求 引用地址:浮点数多项式计算

上一篇:以10为底的浮点对数函数
下一篇:数开平方(快速逼近算法)

推荐阅读最新更新时间:2024-03-16 13:52

仪表设计中的浮点数问题及解决办法
引言     C语言以其编程效率高、代码可移植性好、程序易于维护等特点,在仪表系统及其他嵌入式系统开发中应用十分广泛。尤其在处理浮点数的运算过程中,C语言与汇编语言相比其优势更加明显。因此,C语言深得项目开发人员的青睐。但是在浮点数处理过程中,若处理不当,则会在系统调试过程中出现异常,致使系统无法工作。     本文以笔者开发的某型号流量计为背景,讨论了在仪表设计过程中应用C语言处理浮点数时出现的问题及相应的解决办法,以供读者在遇到类似的问题时参考。流量计的MCU为Microchip公司的PIC16F876A,集成开发环境是Microchip公司的MPLAB8.3,C编译器选用HITECH公司的PICC9.5。 1 精度问题
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved