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