tagtb.asm

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

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

           IFNDEF       TAGTB1
            #DEFINE     TAGTB1

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

            BTFSC       BARGB0,MSB
            GOTO        TAGTB24N

TAGTB24P    MOVF        BEXP,W      ; compare positive 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
TAGTB24N    MOVF        AEXP,W      ; compare negative 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

TAGTB24O    BTFSS       AARGB0,MSB
            RETLW       0x01
            RETLW       0x00

           ENDIF

⌨️ 快捷键说明

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