|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
多字節(jié)乘法子程序(申請加精) |
| 作者:libinxtdj 欄目:單片機 |
LIST P=16F73 #INCLUDE <P16F73.INC> CBLOCK 0X20 CNT TEMP1 TEMP2 TEMP3 TEMP4 TEMP5 SADR1 SOUH RLT RLTH SADRH1 SADRH2 DADR1 ENDC #DEFINE SADR 0X40 #DEFINE DADR 0X50 #DEFINE SADRH 0X60 ORG 0X00 MOVLW 0X80 MOVWF SADR MOVLW 0X4F MOVWF SADR+1 MOVLW 0X12 MOVWF SADR+2 MOVLW 0X10 MOVWF SADR+3 MOVLW 0X64 MOVWF DADR MOVLW 0X12 MOVWF DADR+1 MOVLW 0X12 MOVWF DADR+2 MOVLW 0X12 MOVWF DADR+3 MOVLW .4 MOVWF CNT MUMUL: MOVF CNT,W MOVWF TEMP5 MOVWF TEMP4 MOVWF TEMP3 ;TEMP3作為計數(shù)器 MOVLW SADR MOVWF SOUH ;SOUH保護被乘數(shù)地址 MOVWF SADR1 MOVLW SADRH MOVWF RLT ;RLT存結果地址 ADDWF CNT,W MOVWF SADRH1 ;SADRH存儲結果中間位地址 MOVLW DADR MOVWF RLTH ;RLTH存儲乘數(shù)地址 BCF STATUS,C RLF TEMP3,F RLF TEMP3,F RLF TEMP3,F ;字節(jié)數(shù)乘以8得到位數(shù) MOVF SADRH1,W MOVWF FSR LOOP19: CLRF INDF ;結果清0 INCF FSR,F DECFSZ TEMP4,F GOTO LOOP19 MOVLW SADRH MOVWF FSR LOOP18: CLRF INDF INCF FSR,F DECFSZ TEMP5,F GOTO LOOP18 LOOP20: CALL MROR ;被乘數(shù)循環(huán)右移 BTFSS STATUS,C GOTO NOC6 MOVF SADRH1,W MOVWF SADR1 ;中間結果 MOVF RLTH,W MOVWF DADR1 ;乘數(shù)地址 CALL MUADD ;乘數(shù)加到結果中 NOC6: MOVF RLT,W MOVWF SADR1 RLF TEMP4,F ; BCF STATUS,C RLF CNT,F ; RRF TEMP4,F ;得到結果字節(jié)數(shù)并保護C CALL MSHR ;結果非循環(huán)右移 BCF STATUS,C RRF CNT,F ;恢復字節(jié)數(shù) MOVF SOUH,W MOVWF SADR1 ;恢復被乘數(shù)地址 DECFSZ TEMP3,F GOTO LOOP20 &nbs |
| 2樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/3/7 18:02:00 發(fā)布:
進步不錯,不過還要磨練 |
|
| 3樓: | >>參與討論 |
| 作者: libinxtdj 于 2006/3/7 20:28:00 發(fā)布:
謝謝了 希望謝工多多指教啊 ! |
|
| 4樓: | >>參與討論 |
| 作者: xwshwl 于 2006/3/7 20:37:00 發(fā)布:
真的可以直接運行嗎?這樣的好程序壇子里不多啊! 真的可以直接運行嗎?這樣的好程序壇子里不多。 此類帖子還望樓主繼續(xù)發(fā)! 學習先! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |