📄 flonrm.asm
字号:
;********************FLONRM********************
;本程序实现非标准浮点数左规格式化。
;入口参数:原浮点数在ARGBH1:ARGBL1:EXP1中。
;出口参数:结果在ARGBH1:ARGBL1:EXP1中。
;占用资源:W,STATUS,020H,021H,023H,024H,025H,029H,一重堆栈。
IFNDEF FLONRM1
#DEFINE FLONRM1
FLONRM MOVLW 0C0H
ANDWF FPFLAGS,F
CLRF TEMP2 ;指数减少量清0
MOVF ARGBH1,W
BTFSS STATUS,Z ;尾数高字节为0吗?
GOTO NORM2424
MOVF ARGBL1,W ;左移8位
MOVWF ARGBH1
BTFSC STATUS,Z ;结果为0吗?
GOTO RES024
CLRF ARGBL1
BSF TEMP2,3
NORM2424 MOVF TEMP2,W
SUBWF EXP1,F
BTFSS STATUS,Z
BTFSS STATUS,C
GOTO SETFUN
BCF STATUS,C ;清除进位位
NORM2424A BTFSC ARGBH1,MSB ;如果MSB=1,格式化完成
GOTO FIXSIGN24
RLF ARGBL1,F ;否则,尾数左移,指数减1
RLF ARGBH1,F
DECFSZ EXP1,F
GOTO NORM2424A
GOTO SETFUN ;如果EXP1=0,则发生下溢
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -