原创 一段带四舍五入的除法

2006-10-24 09:06 2756 6 6 分类: MCU/ 嵌入式
;===================================================================================
;函数:F_DV31
;功能:三字节除一字节
;入口:R0R1R2/R7  -->R0R1R2…R3
;作者:JIMOOM
;日期:2004/8/10
;RAM :R0~R3,R7,A,B,F0
;备注:OK
;修改日期:2004/8/26
;修改描述:变量命名修改
;====================================================================================
?PR?F_DV31 SEGMENT CODE;
PUBLIC F_DV31;
RSEG ?PR?F_DV31;
;------------------------------------
F_DV31:    MOV B,#18H     ;R0R1R2/R7  -->R0R1R2
        MOV R3,#0
        MOV A,R7
        JZ DV31_5
DV31_1:    CLR C
        MOV A,R2
        RLC A
        MOV R2,A
        MOV A,R1
        RLC A
        MOV R1,A
        MOV A,R0
        RLC A
        MOV R0,A
        MOV A,R3
        RLC A
        MOV R3,A
        MOV F0,C
        CLR C
        SUBB A,R7
        JB F0,DV31_2
        JC DV31_3
DV31_2:    MOV R3,A
        INC R2
DV31_3:    DJNZ B,DV31_1
        ;---------------------------
        CLR C
        MOV A,R3
        RLC A        ;四舍五入
        SUBB  A,R7
        JC DV31_4
        ;-------------------------
        MOV A,R2
        ADD A,#1
        MOV R2,A
        MOV A,R1
        ADDC A,#0
        MOV R1,A
        MOV A,R0
        ADDC A,#0
        MOV R0,A
DV31_4:    RET
DV31_5: MOV R0,#0
        MOV R1,#0
        MOV R2,#0
        RET            
;====================================================================================
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /1 下一条