rnd3224.asm

来自「pic单片机常用的汇编程序,很有用的,分成各个小模块」· 汇编 代码 · 共 29 行

ASM
29
字号
;32为浮点数向24位圆整
           IFNDEF       RND32241
            #DEFINE     RND32241
RND3224     BTFSS       AARGB2,MSB  ;保留字 NSB < 0x80?
            RETLW       0x00
            BSF         STATUS,C    ;进位位置1以便圆整
            MOVLW       0x7F
            ANDWF       AARGB2,W
            BTFSC       STATUS,Z
            RRF         AARGB1,W    ;select even if NSB = 0x80
            MOVF        AARGB0,W
            MOVWF       SIGN        ;保存符号位
            BSF         AARGB0,MSB  ;显露最高位的1
            BCF         STATUS,Z
            BTFSC       STATUS,C    ;圆整
            INCF        AARGB1,F
            BTFSC       STATUS,Z
            INCF        AARGB0,F		
            BTFSS       STATUS,Z    ;圆整导致进位溢出?
            GOTO        RND3224OK
            RRF         AARGB0,F    ;如果是这样则右移
            RRF         AARGB1,F
            INCF        EXP,F       ;检测有无上溢
            BTFSC       STATUS,Z
            GOTO        SETFOV
RND3224OK   BTFSS       SIGN,MSB
            BCF         AARGB0,MSB  ;如果是正数则隐藏最高位
            RETLW       0x00
           ENDIF

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?