|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請看看我的浮點(diǎn)庫那里 有錯(cuò) |
| 作者:mcu_51 欄目:單片機(jī) |
兩個(gè)負(fù)相加時(shí)會(huì)為正數(shù)!請看看那里錯(cuò)了! ;******************************************************************* ; Floating Point Subtraction ( ACCb - ACCa -> ACCb ) ; F_sub call NEG_A ; At first negate ACCa; Then add ; F_add movf EXPA,W ; scale mantissas subwf EXPB,W ; find the greater exponent btfsc STATUS,Z goto padd ; exponents are equal andlw 0x80 skpnz call F_swap ; if A < B then swap ( A<->B ) movf EXPA,W subwf EXPB,F scloop call SHFTSR incfsz EXPB, F goto scloop movf EXPA,W movwf EXPB padd movf ACCAHI,W iorwf ACCBHI,W movwf SIGN call D_add ; compute double PRECISION integer add btfss SIGN,7 btfss ACCBHI,7 goto F_addE bcf STATUS,C incf EXPB, F call SHFTR F_addE btfsc ACCBHI,7 goto F_addNE call F_norm retlw 0 F_addNE call NEG_B call F_norm call NEG_B retlw 0 SHFTSR BCF STATUS,C ;ACCB帶符號右移子程序 BTFSC ACCBHI,7 BSF STATUS,C SHFTR RRF ACCBHI,F RRF ACCBLO,F RETURN ;子程序返回 NEG_A COMF ACCALO,F ;ACCALO取反加1 INCF ACCALO,F BTFSC STATUS,Z ;低8位有進(jìn)位嗎? DECF ACCAHI,F ;有,ACCAHI減1,再取反 COMF ACCAHI,F ;否則ACCAHI直接取反 RETURN ;***雙字節(jié)加法子程序,入口地址ACCB+ACCA,出口地址ACCB*** D_add MOVF ACCALO,W ;ACCB和ACCA低半字節(jié)相加 ADDWF ACCBLO,F BTFSC STATUS,C ;有進(jìn)位否? INCF ACCBHI,F ;有,ACCB高字節(jié)加1,再加ACCAHI MOVF ACCAHI,W ;ACCA、ACCB高半字節(jié)相加 ADDWF ACCBHI,F RETURN ;子程序返回 ;***********浮點(diǎn)數(shù)規(guī)格化子程序**************** F_norm movfw ACCBHI iorwf ACCBLO,W skpnz retlw 0 C_norm btfsc ACCBHI,6 retlw 0 clrc RLF ACCBLO, F RLF ACCBHI, F DECF EXPB, F goto C_norm ; F_norm32 movfw ACCBHI iorwf ACCBLO,W iorwf ACCCHI,W iorwf ACCCLO,W skpnz retlw 0 C_norm1 btfsc ACCBHI,6 retlw 0 clrc RLF ACCCLO, F RLF ACCCHI, F RLF ACCBLO, F RLF ACCBHI, F DECF EXPB, F goto C_norm1 |
| 2樓: | >>參與討論 |
| 作者: shaoguang 于 2003/9/11 18:58:00 發(fā)布:
看完也太累了,何不用C |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |