芯海單片機除法運算
; filename: 除法運算.asm
; chip : CSU1182B
; author :胡琴
; date : 2013-02-21
;完整代碼下載: http://www.51hei.com/f/xhrfys.rar
;============================================
include CSU1182B.inc
;============================================
; program start
;============================================
ORG 000h
GOTO CF01
ORG 015H
CF01:
MOVLW 0FFH ;
MOVWF 0B7H ;被除數(shù)高8位
MOVLW 0FFH ;
MOVWF 0B8H ;被除數(shù)低8位
MOVLW 00H ;
MOVWF 0B9H ;余數(shù)高位(被除數(shù)處理數(shù)據(jù)寄存器)
MOVLW 00H ;
MOVWF 0BAH ;余數(shù)低位(被除數(shù)處理數(shù)據(jù)寄存器)
MOVLW 00H ;
MOVWF 0BBH ;商低8位
MOVLW 00H ;
MOVWF 0BCH ;商高8位
MOVLW 03H ;
MOVWF 0BDH ;除數(shù)低8位
MOVLW 0E8H ;
MOVWF 0BEH ;除數(shù)高8位
MOVLW 16 ;
MOVWF 0BFH ;位數(shù)寄存器
CF02:
RLF 0B8H,1 ;帶進位左移被除數(shù)
RLF 0B7H,1 ;
RLF 0BAH,1 ;帶進位處理被除數(shù)數(shù)據(jù)
RLF 0B9H,1 ;
BCF STATUS,C ;清C
MOVFW 0BEH ;
SUBWF 0BAH,0 ;用處理出來的被除數(shù)減除數(shù)
MOVWF 0C1H ;
MOVFW 0BDH ;
SUBWFC 0B9H,0 ;用處理出來的被除數(shù)減除數(shù)
MOVWF 0C0H ;
BTFSS STATUS,C ;判斷處理出來的被除數(shù)是否比除數(shù)大
GOTO CF03 ;
MOVFW 0C1H ;是則保存商到被除數(shù)處理數(shù)據(jù)寄存器
MOVWF 0BAH ;
MOVFW 0C0H ;
MOVWF 0B9H ;
CF03:
RLF 0BCH,1 ;將相減后的C左移進商寄存器
RLF 0BBH,1 ;
DECFSZ 0BFH,1 ;判斷是否完成運算
GOTO CF02 ;
GOTO $
end
;============================================
評論