taltb.asm

来自「微芯公司的PIC子程序库及运算平台」· 汇编 代码 · 共 67 行

ASM
67
字号
;********************TALTB********************
;本程序实现标准浮点数比较大小。
;入口参数:A在ARGBH1:ARGBL1:EXP1中,B在ARGBH2:ARGBL2:EXP2中。
;出口参数:如果A<B,则W=1,否则W=0。
;占用资源:W,STATUS,020H~02BH,一重堆栈。


           IFNDEF       TALTB1
            #DEFINE     TALTB1
                                    
TALTB       MOVF        AARGB0,W    ; test if signs opposite
            XORWF       BARGB0,W
            MOVWF       TEMP
            BTFSC       TEMP,MSB
            GOTO        TALTB24O

            BTFSC       AARGB0,MSB
            GOTO        TALTB24N
                                    
TALTB24P    MOVF        AEXP,W      ; compare positive arguments
            SUBWF       BEXP,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01

            MOVF        AARGB0,W
            SUBWF       BARGB0,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01

            MOVF        AARGB1,W
            SUBWF       BARGB1,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01
            RETLW       0x00
                                    
TALTB24N    MOVF        BEXP,W      ; compare negative arguments
            SUBWF       AEXP,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01

            MOVF        BARGB0,W
            SUBWF       AARGB0,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01

            MOVF        BARGB1,W
            SUBWF       AARGB1,W
            BTFSS       STATUS,C
            RETLW       0x00
            BTFSS       STATUS,Z
            RETLW       0x01
            RETLW       0x00

TALTB24O    BTFSS       BARGB0,MSB
            RETLW       0x01
            RETLW       0x00
           ENDIF

⌨️ 快捷键说明

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