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

PIC單片機65535*65535子程序

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年09月26日   【字體:
  INCLUDE"P16F877.INC"
  ORG  0000H
   GOTO A1
   ORG  002BH
A1   MOVLW 00H
  MOVWF 40H;數(shù)據(jù)處理寄存器高位(乘積高8位)
  MOVLW 00H
  MOVWF 41H;數(shù)據(jù)處理寄存器低位(乘積高中8位)
  MOVLW 0FFH
  MOVWF 42H;被乘數(shù)高位(乘積低中8位)
  MOVLW 0FFH 
  MOVWF 43H;被乘數(shù)低位(乘積低8位)
  MOVLW 0FFH
  MOVWF 44H;乘數(shù)高位
  MOVLW 0FFH
  MOVWF 45H;乘數(shù)低位
  MOVLW D'16'
  MOVWF 4AH;循環(huán)次數(shù)--8位二進制數(shù)相乘8次4位則4次
A2  CLRF 4BH;清標(biāo)志
  BTFSS 43H,0;判斷被乘數(shù)第0位是否為0是則不用相加 
  GOTO A3
   MOVFW 45H;不為0則相加
   ADDWF 41H,1;乘數(shù)低位與處理后數(shù)據(jù)低位相加數(shù)據(jù)存回數(shù)據(jù)處理低位寄存器
  MOVFW 44H;
  BTFSC STATUS,C;判斷是否溢出
  INCF 44H,0;是則加1
  BTFSC STATUS,Z;判斷加1后是否溢出
  BSF  4BH,1;是則置為標(biāo)志
   ADDWF 40H,1;乘數(shù)低位與處理后數(shù)據(jù)高位相加上面相加可能溢出所以用ADDC數(shù)據(jù)存回數(shù)據(jù)處理高位寄存器
  BTFSC 4BH,1;判斷溢出標(biāo)志
  BSF  STATUS,C;溢出則置位C
A3   
  RRF  40H,1;先右移高位相加可能溢出RRF循環(huán)帶C右移
  RRF  41H,1;再右移低位把高位的數(shù)移入低位
   RRF  42H,1;將處理后的數(shù)移到被乘數(shù)高位
   RRF  43H,1;將處理后的數(shù)移到被乘數(shù)低位
   DECFSZ 4AH,1;是否完成
  GOTO A2
  NOP
   NOP
   NOP
   GOTO  $
   END
關(guān)閉窗口

相關(guān)文章