?? FLN.cod
字號:
FLN
FLN: LCALL MVR0 ;將[R0]傳送到第一工作區
JB 1FH,LNOV;負數或零求對數,出錯
MOV A,R3
ORL A,R4
JNZ LN0
LNOV: SETB OV
RET
LN0: CLR C
LCALL RL1 ;左規一次
CLR A
XCH A,R2 ;保存原階碼,清零工作區的階碼
PUSH ACC
LCALL RLN ;規格化
LCALL MOV0 ;回傳
LCALL FPLN ;用多項式計算尾數的對數
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 ;結束
POP ACC ;取出原階碼
JNZ LN1
RET ;如為零,則結束
LN1: CLR 1EH ;清第二區數符
MOV C,ACC.7
MOV F0,C ;保存階符
JNC LN2
CPL A ;當階碼為負時,求其絕對值
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 ;乘積的尾數在R6R7R2中
CLR A
ADDC A,B
MOV R6,A
MOV R5,#8 ;乘積的階碼初始化(整數部分為一字節)
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 ;取出階符,作為乘積的數符
MOV ACC.7,C
LJMP ASN ;與尾數的對數合并,得原操作數的對數
入口條件:操作數在[R0]中。
出口信息:OV=0時,結果仍在[R0]中,OV=1時,負數或零求對數出錯。
影響資源:DPTR、PSW、A、B、R2~R7、位1EH、1FH 堆棧需求: 7字節
功能:以e為底的浮點對數函數 運算子程序
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -