?? FLN.cod
字號:
FLN
FLN: LCALL MVR0 ;將[R0]傳送到第一工作區(qū)
JB 1FH,LNOV;負(fù)數(shù)或零求對數(shù),出錯
MOV A,R3
ORL A,R4
JNZ LN0
LNOV: SETB OV
RET
LN0: CLR C
LCALL RL1 ;左規(guī)一次
CLR A
XCH A,R2 ;保存原階碼,清零工作區(qū)的階碼
PUSH ACC
LCALL RLN ;規(guī)格化
LCALL MOV0 ;回傳
LCALL FPLN ;用多項式計算尾數(shù)的對數(shù)
DB 7BH,0F4H,30H;0.029808
DB 0FEH,85H,13H;-0.12996
DB 7FH,91H,51H;0.28382
DB 0FFH,0FAH,0BAH;-0.4897
DB 0,0FFH,0CAH;0.99918
DB 70H,0C0H,0;1.1442×10-5
DB 40H ;結(jié)束
POP ACC ;取出原階碼
JNZ LN1
RET ;如為零,則結(jié)束
LN1: CLR 1EH ;清第二區(qū)數(shù)符
MOV C,ACC.7
MOV F0,C ;保存階符
JNC LN2
CPL A ;當(dāng)階碼為負(fù)時,求其絕對值
INC A
LN2: MOV R2,A ;階碼的絕對值乘以0.69315
MOV B,#72H
MUL AB
XCH A,R2
MOV R7,B
MOV B,#0B1H
MUL AB
ADD A,R7
MOV R7,A ;乘積的尾數(shù)在R6R7R2中
CLR A
ADDC A,B
MOV R6,A
MOV R5,#8 ;乘積的階碼初始化(整數(shù)部分為一字節(jié))
LN3: JB ACC.7,LN4;乘積格式化
MOV A,R2
RLC A
MOV R2,A
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
DEC R5
SJMP LN3
LN4: MOV C,F0 ;取出階符,作為乘積的數(shù)符
MOV ACC.7,C
LJMP ASN ;與尾數(shù)的對數(shù)合并,得原操作數(shù)的對數(shù)
入口條件:操作數(shù)在[R0]中。
出口信息:OV=0時,結(jié)果仍在[R0]中,OV=1時,負(fù)數(shù)或零求對數(shù)出錯。
影響資源:DPTR、PSW、A、B、R2~R7、位1EH、1FH 堆棧需求: 7字節(jié)
功能:以e為底的浮點對數(shù)函數(shù) 運算子程序
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -