?? FTOD.cod
字號:
FTOD FTOD: LCALL MVR0 ;將[R0]傳送到第一工作區(qū)
MOV A,R2
JZ FTD4 ;階碼為零,純小數(shù)
JB ACC.7,FTD4;階碼為負,純小數(shù)
SETB C
SUBB A,#10H
JC FTD1
SETB OV ;階碼大于16,溢出
RET
FTD1: SETB C
MOV A,R2
SUBB A,#8 ;階碼大于8否?
JC FTD3
FTD2: MOV B,#10H ;階碼大于8,按雙字節(jié)整數(shù)轉(zhuǎn)換
LCALL FTD8
SETB F0 ;設(shè)立雙字節(jié)整數(shù)標(biāo)志
CLR C
CLR OV
RET
FTD3: MOV B,#8 ;按一字節(jié)整數(shù)一字節(jié)小數(shù)轉(zhuǎn)換
LCALL FTD8
SETB C ;設(shè)立一字節(jié)整數(shù)一字節(jié)小數(shù)標(biāo)志
CLR F0
CLR OV
RET
FTD4: MOV B,#0 ;按純小數(shù)轉(zhuǎn)換
LCALL FTD8
CLR OV ;設(shè)立純小數(shù)標(biāo)志
CLR F0
CLR C
RET
FTD8: MOV A,R2 ;按規(guī)定的整數(shù)位數(shù)進行右規(guī)
CJNE A,B,FTD9
MOV A,R3 ;將雙字節(jié)結(jié)果傳送到[R0]中
MOV @R0,A
INC R0
MOV A,R4
MOV @R0,A
DEC R0
RET
FTD9: CLR C
LCALL RR1 ;右規(guī)一次
SJMP FTD8
入口條件:格式化浮點操作數(shù)在[R0]中。
出口信息:OV=1時溢出,OV=0時轉(zhuǎn)換成功:定點數(shù)的絕對值在[R0]中(雙字節(jié)),數(shù)符
在位1FH中,F(xiàn)0=1 時為整數(shù),CY=1時為一字節(jié)整數(shù)一字節(jié)小數(shù),否則為純小數(shù)。
影響資源:PSW、A、B、R2、R3、R4、位1FH 堆棧需求: 6字節(jié)
功能:格式化浮點數(shù)轉(zhuǎn)換成雙字節(jié)定點數(shù) 運算子程序
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -