taleb.asm

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

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

           IFNDEF       TALEB1
            #DEFINE     TALEB1

TALEB       MOVF        AARGB0,W    ; test if signs opposite
            XORWF       BARGB0,W
            MOVWF       TEMP
            BTFSC       TEMP,MSB
            GOTO        TALEB24O

            BTFSC       AARGB0,MSB
            GOTO        TALEB24N
                                    
TALEB24P    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
            RETLW       0x01
                                    
TALEB24N    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
            RETLW       0x01

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

⌨️ 快捷键说明

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