; 除法子程序 ;/************************************************************* 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关键字:PIC单片机 16进制数
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』