專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

PIC單片機(jī)4位16進(jìn)制數(shù)除于4位16進(jìn)制數(shù)子程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年09月25日   【字體:
;**************************************************************
;   除法子程序
;/*************************************************************
CF1   MOVLW 0FFH;被除數(shù)
   MOVWF 70H ;被除數(shù)高8位寄存器 
   MOVLW 0FFH;被除數(shù)
   MOVWF 71H;被除數(shù)低8位寄存器
  
   MOVLW 00H
   MOVWF 72H ;余數(shù)高8位寄存器
   MOVLW 00H
   MOVWF 73H ;余數(shù)低8位寄存器
   
    MOVLW 00H
   MOVWF 74H;商高8位寄存器
   MOVLW 00H
   MOVWF 75H;商低8位寄存器
    
   MOVLW D'0';除數(shù)
   MOVWF 76H;除數(shù)高8位寄存器
   MOVLW D'2';除數(shù)
   MOVWF 77H;除數(shù)低8位寄存器
   MOVLW D'16'
   MOVWF 7AH
CF2  
   RLF  71H,1;先把移低字節(jié)移到高字節(jié)位
   RLF  70H,1;先處理高字節(jié)和接收低字節(jié)傳上來(lái)的位字節(jié)
   RLF  73H,1;把移出來(lái)的數(shù)處理
   RLF  72H,1;把移出來(lái)的數(shù)處理
   MOVFW 77H
   SUBWF 73H,0;先減低字節(jié)8位
   MOVWF 7BH;臨時(shí)保存余數(shù)
   MOVFW 76H
   BTFSS STATUS,C;判斷是否有借位減法指令只影響C不受C影響
   INCF 76H,0;是被減數(shù)加1
   SUBWF 72H,0 ;再減高8位 
    BTFSS STATUS,C;判斷大小大則保存余數(shù)到R2,R3
   GOTO CF3
   MOVWF 72H ;保存高八位余數(shù)
   MOVFW 7BH
   MOVWF 73H;保存低八位余數(shù)
 
  ;由于除數(shù)為4位16進(jìn)制數(shù)所以余數(shù)有可能超過(guò)2位16進(jìn)制數(shù)要用2個(gè)寄存器
CF3   
    RLF  75H,1;先把存到低字節(jié)位
   RLF  74H,1;通過(guò)低字節(jié)存到高字節(jié)
   DECFSZ 7AH,1;判斷是否完成
   GOTO CF2   
   RETURN
關(guān)閉窗口

相關(guān)文章