c语言中浮点数取整函数,浮点取整函数
发布日期:2021-06-24 12:04:22 浏览次数:2 分类:技术文章

本文共 684 字,大约阅读时间需要 2 分钟。

标号: FINT 功能:浮点取整函数

入口条件:操作数在[R0]中。

出口信息:结果仍在[R0]中。

影响资源:PSW、A、R2、R3、R4、位1FH 堆栈需求: 6字节

FINT: LCALL MVR0 ;将[R0]传送到第一工作区中

LCALL INT ;在工作寄存器中完成取整运算

LJMP MOV0 ;将结果传回到[R0]中

INT: MOV A,R3

ORL A,R4

JNZ INTA

CLR 1FH ;尾数为零,阶码也清零,结束取整

MOV R2,#41H

RET

INTA: MOV A,R2

JZ INTB ;阶码为零否?

JB ACC.7,INTB;阶符为负否?

CLR C

SUBB A,#10H ;阶码小于16否?

JC INTD

RET ;阶码大于16,已经是整数

INTB: CLR A ;绝对值小于一,取整后正数为零,负数为负一

MOV R4,A

MOV C,1FH

RRC A

MOV R3,A

RL A

MOV R2,A

JNZ INTC

MOV R2,#41H

INTC: RET

INTD: CLR F0 ;舍尾标志初始化

INTE: CLR C

LCALL RR1 ;右规一次

ORL C,F0 ;记忆舍尾情况

MOV F0,C

CJNE R2,#10H,INTE;阶码达到16(尾数完全为整数)否?

JNB F0,INTF ;舍去部分为零否?

JNB 1FH,INTF;操作数为正数否?

INC R4 ;对于带小数的负数,向下取整

MOV A,R4

JNZ INTF

INC R3

INTF: LJMP RLN ;将结果规格化

转载地址:https://blog.csdn.net/weixin_32637935/article/details/117271341 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux 魅族,传魅族17全系90Hz刷新率
下一篇:指纹图片调对比度 c语言,手动调整图片打印深浅(亮度/对比度 Windows OS)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月10日 12时42分10秒