位置:51电子网 » 技术资料 » 单 片 机

浮点数保存代码

发布时间:2007/4/23 0:00:00 访问次数:1963

;程序说明:浮点数变为压缩BCD码,保存在以数组中
;         第1字节的位7:0正,1负.位6:0(位5--0代表小数点前的位数),1(位5--0代表小数
点后0的位数)
;         2--4字节为压缩BCD码,有效位为7位,3个半字节,最后半个字节请使用者自行放

;         程序占用资源PSW,A,B,DPTR,R0--R7,SP深度6,RAM 5个放数据
;         keil 兼容,调用KEIL 的FPMUL子程序。
;程序作者:*************陈远征**************
;目    的:追求更快的执行速度,与最小的程序代码
;发布时间:2003--05--08
;编写背景:精通汇编,研究C51半个月。身感C51方便中的不便
;         研究了几种汇编及KEIL的浮点算法,特做此程序.
;声    明:转载时请保留以上的信息

C程序:
extern float ftod(float i);

unsigned char cyz[5];

main(){
     float i=1234.567;
     ftod(i);
while(1); 
      }

汇编程序:

PUBLIC   _FTOD          ;程序段
FTODP    SEGMENT CODE   ;入口地址
RSEG     FTODP          ;程序段

EXTRN     CODE  (?C?FPMUL)
EXTRN    DATA  (CYZ)
_FTOD:              ;参数传递在R4--R7中,浮点数IEEE标准seeeeeee emmmmmmm 
mmmmmmmm mmmmmmmm
FTOD:
         MOV     A,R4       ;保存数符
         RLC     A               
         CLR     A              
         RRC     A              
         MOV     CYZ,A
         MOV     A,R4       ;取绝对值
         CLR     ACC.7
         MOV     R4,A
         ORL     A,R5
     JNZ     FCMP_1E10
         MOV     CYZ,#0      ;数值为0
         MOV     CYZ+1,#0
         MOV     CYZ+2,#0
         MOV     CYZ+3,#0
         MOV     CYZ+4,#0
     RET
FCMP_1E10:  
         MOV     DPTR,#YUANZHENG_DE10
         LCALL   FR0DPTR               ;数值装入R0--R3
 &n

;程序说明:浮点数变为压缩BCD码,保存在以数组中
;         第1字节的位7:0正,1负.位6:0(位5--0代表小数点前的位数),1(位5--0代表小数
点后0的位数)
;         2--4字节为压缩BCD码,有效位为7位,3个半字节,最后半个字节请使用者自行放

;         程序占用资源PSW,A,B,DPTR,R0--R7,SP深度6,RAM 5个放数据
;         keil 兼容,调用KEIL 的FPMUL子程序。
;程序作者:*************陈远征**************
;目    的:追求更快的执行速度,与最小的程序代码
;发布时间:2003--05--08
;编写背景:精通汇编,研究C51半个月。身感C51方便中的不便
;         研究了几种汇编及KEIL的浮点算法,特做此程序.
;声    明:转载时请保留以上的信息

C程序:
extern float ftod(float i);

unsigned char cyz[5];

main(){
     float i=1234.567;
     ftod(i);
while(1); 
      }

汇编程序:

PUBLIC   _FTOD          ;程序段
FTODP    SEGMENT CODE   ;入口地址
RSEG     FTODP          ;程序段

EXTRN     CODE  (?C?FPMUL)
EXTRN    DATA  (CYZ)
_FTOD:              ;参数传递在R4--R7中,浮点数IEEE标准seeeeeee emmmmmmm 
mmmmmmmm mmmmmmmm
FTOD:
         MOV     A,R4       ;保存数符
         RLC     A               
         CLR     A              
         RRC     A              
         MOV     CYZ,A
         MOV     A,R4       ;取绝对值
         CLR     ACC.7
         MOV     R4,A
         ORL     A,R5
     JNZ     FCMP_1E10
         MOV     CYZ,#0      ;数值为0
         MOV     CYZ+1,#0
         MOV     CYZ+2,#0
         MOV     CYZ+3,#0
         MOV     CYZ+4,#0
     RET
FCMP_1E10:  
         MOV     DPTR,#YUANZHENG_DE10
         LCALL   FR0DPTR               ;数值装入R0--R3
 &n

相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!