首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > 8051子程序(七)

8051子程序(七)

资料介绍
8051子程序(七)

MCS-51单片机实用子程序库(七)


MCS-51单片机实用子程序库

(25) 标号: FTOD 功能:格式化浮点数转换成双字节定点数

入口条件:格式化浮点操作数在[R0]中。
出口信息:OV=1时溢出,OV=0时转换成功:定点数的绝对值在[R0]中(双字节),数符

在位1FH中,F0=1 时为整数,CY=1时为一字节整数一字节小数,否则为纯小数。
影响资源:PSW、A、B、R2、R3、R4、位1FH 堆栈需求: 6字节
FTOD: LCALL MVR0 ;将[R0]传送到第一工作区
MOV A,R2
JZ FTD4 ;阶码为零,纯小数
JB ACC.7,FTD4;阶码为负,纯小数
SETB C
SUBB A,#10H
JC FTD1
SETB OV ;阶码大于16,溢出
RET
FTD1: SETB C
MOV A,R2
SUBB A,#8 ;阶码大于8否?
JC FTD3
FTD2: MOV B,#10H ;阶码大于8,按双字节整数转换
LCALL FTD8
SETB F0 ;设立双字节整数标志
CLR C
CLR OV
RET
FTD3: MOV B,#8 ;按一字节整数一字节小数转换
LCALL FTD8
SETB C ;设立一字节整数一字节小数标志
CLR F0
CLR OV
RET
FTD4: MOV B,#0 ;按纯小数转换
LCALL FTD8
CLR OV ;设立纯小数标志
CLR F0
CLR C
RET
FTD8: MOV A,R2 ;按规定的整数位数进行右规
CJNE A,B,FTD9
MOV A,R3 ;将双字节结果传送到[R0]中
MOV @R0,A
INC R0
MOV A,R4
MOV @R0,A
DEC R0
RET
FTD9: CLR C
LCALL RR1 ;右规一次
SJMP FTD8

(26) 标号: BTOF 功能:
标签:8051程序
8051子程序(七)
本地下载

评论