|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請問誰有浮點數(shù)乘法子程序: |
| 作者:紫菜 欄目:單片機 |
| 2樓: | >>參與討論 |
| 作者: 紫菜 于 2006/10/28 10:49:00 發(fā)布:
請問誰有浮點數(shù)乘法子程序? 我在網(wǎng)上找到的標號: FMUL 功能:浮點數(shù)乘法如下 發(fā)現(xiàn)它只能要是乘數(shù)小于0.0625就不能用了 對了我用的浮點數(shù)是24位標準浮浮點數(shù) 例如我用25600*0.625 出來的結(jié)果竟然是0E 01 90 都不知道這是什么數(shù) 入口條件:被乘數(shù)在[R0]中,乘數(shù)在[R1]中。 出口信息:OV=0時,積仍在[R0]中,OV=1時,溢出。 影響資源:PSW、A、B、R2~R7、位1EH、1FH 堆棧需求:6字節(jié) FMUL: LCALL MVR0 ;將[R0]傳送到第一工作區(qū)中 MOV A,@R0 XRL A,@R1 ;比較兩個操作數(shù)的符號 RLC A MOV 1FH,C ;保存積的符號 LCALL MUL0 ;計算積的絕對值 LJMP MOV0 ;將結(jié)果傳回到[R0]中 MUL0: LCALL MVR1 ;將[R1]傳送到第二工作區(qū)中 MUL1: MOV A,R3 ;第一尾數(shù)為零否? ORL A,R4 JZ MUL6 MOV A,R6 ;第二尾數(shù)為零否? ORL A,R7 JZ MUL5 MOV A,R7 ;計算R3R4×R6R7-→R3R4 MOV B,R4 MUL AB MOV A,B XCH A,R7 MOV B,R3 MUL AB ADD A,R7 MOV R7,A CLR A ADDC A,B XCH A,R4 MOV B,R6 MUL AB ADD A,R7 MOV R7,A MOV A,B ADDC A,R4 MOV R4,A CLR A RLC A XCH A,R3 MOV B,R6 MUL AB ADD A,R4 MOV R4,A MOV A,B ADDC A,R3 MOV R3,A JB ACC.7,MUL2;積為規(guī)格化數(shù)否? MOV A,R7 ;左規(guī)一次 RLC A MOV R7,A LCALL RL1 MUL2: MOV A,R7 JNB ACC.7,MUL3 INC R4 MOV A,R4 JNZ MUL3 INC R3 MOV A,R3 JNZ MUL3 MOV R3,#80H INC R2 MUL3: MOV A,R2 ;求積的階碼 ADD A,R5 MD: MOV R2,A ;階碼溢出判斷 JB ACC.7,MUL4 JNB ACC.6,MUL6 MOV R2,#3FH ;階碼上溢,設(shè)立標志 SETB OV RET MUL4: JB ACC.6,MUL6 MUL5: CLR A ;結(jié)果清零(因子為零或階碼下溢) MOV R3,A MOV R4,A MOV R2,#41H MUL6: CLR OV RET |
|
| 3樓: | >>參與討論 |
| 作者: 紫菜 于 2006/10/28 11:04:00 發(fā)布:
希望大家?guī)兔?br> |
|
| 4樓: | >>參與討論 |
| 作者: 紫菜 于 2006/10/28 11:15:00 發(fā)布:
???? |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |