专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

PIC单片机4位16进制数除于4位16进制数子程序

作者:佚名   来源:本站原创   点击数:  更新时间:2012年09月25日   【字体:
;**************************************************************
;   除法子程序
;/*************************************************************
CF1   MOVLW 0FFH;被除数
   MOVWF 70H ;被除数高8位寄存器 
   MOVLW 0FFH;被除数
   MOVWF 71H;被除数低8位寄存器
  
   MOVLW 00H
   MOVWF 72H ;余数高8位寄存器
   MOVLW 00H
   MOVWF 73H ;余数低8位寄存器
   
    MOVLW 00H
   MOVWF 74H;商高8位寄存器
   MOVLW 00H
   MOVWF 75H;商低8位寄存器
    
   MOVLW D'0';除数
   MOVWF 76H;除数高8位寄存器
   MOVLW D'2';除数
   MOVWF 77H;除数低8位寄存器
   MOVLW D'16'
   MOVWF 7AH
CF2  
   RLF  71H,1;先把移低字节移到高字节位
   RLF  70H,1;先处理高字节和接收低字节传上来的位字节
   RLF  73H,1;把移出来的数处理
   RLF  72H,1;把移出来的数处理
   MOVFW 77H
   SUBWF 73H,0;先减低字节8位
   MOVWF 7BH;临时保存余数
   MOVFW 76H
   BTFSS STATUS,C;判断是否有借位减法指令只影响C不受C影响
   INCF 76H,0;是被减数加1
   SUBWF 72H,0 ;再减高8位 
    BTFSS STATUS,C;判断大小大则保存余数到R2,R3
   GOTO CF3
   MOVWF 72H ;保存高八位余数
   MOVFW 7BH
   MOVWF 73H;保存低八位余数
 
  ;由于除数为4位16进制数所以余数有可能超过2位16进制数要用2个寄存器
CF3   
    RLF  75H,1;先把存到低字节位
   RLF  74H,1;通过低字节存到高字节
   DECFSZ 7AH,1;判断是否完成
   GOTO CF2   
   RETURN
关闭窗口

相关文章