?? 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
RND3224OK BTFSS SIGN,MSB
BCF AARGB0,MSB ;如果是正數則隱藏最高位
RETLW 0x00
ENDIF
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -