📄 tagtb.asm
字号:
;********************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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -