芯海单片机除法运算
时间:04-03
来源:互联网
点击:
;============================================
; 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 ;被除数高8位
MOVLW 0FFH ;
MOVWF 0B8H ;被除数低8位
MOVLW 00H ;
MOVWF 0B9H ;余数高位(被除数处理数据寄存器)
MOVLW 00H ;
MOVWF 0BAH ;余数低位(被除数处理数据寄存器)
MOVLW 00H ;
MOVWF 0BBH ;商低8位
MOVLW 00H ;
MOVWF 0BCH ;商高8位
MOVLW 03H ;
MOVWF 0BDH ;除数低8位
MOVLW 0E8H ;
MOVWF 0BEH ;除数高8位
MOVLW 16 ;
MOVWF 0BFH ;位数寄存器
CF02:
RLF 0B8H,1 ;带进位左移被除数
RLF 0B7H,1 ;
RLF 0BAH,1 ;带进位处理被除数数据
RLF 0B9H,1 ;
BCF STATUS,C ;清C
MOVFW 0BEH ;
SUBWF 0BAH,0 ;用处理出来的被除数减除数
MOVWF 0C1H ;
MOVFW 0BDH ;
SUBWFC 0B9H,0 ;用处理出来的被除数减除数
MOVWF 0C0H ;
BTFSS STATUS,C ;判断处理出来的被除数是否比除数大
GOTO CF03 ;
MOVFW 0C1H ;是则保存商到被除数处理数据寄存器
MOVWF 0BAH ;
MOVFW 0C0H ;
MOVWF 0B9H ;
CF03:
RLF 0BCH,1 ;将相减后的C左移进商寄存器
RLF 0BBH,1 ;
DECFSZ 0BFH,1 ;判断是否完成运算
GOTO CF02 ;
GOTO $
end
;============================================
; 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 ;被除数高8位
MOVLW 0FFH ;
MOVWF 0B8H ;被除数低8位
MOVLW 00H ;
MOVWF 0B9H ;余数高位(被除数处理数据寄存器)
MOVLW 00H ;
MOVWF 0BAH ;余数低位(被除数处理数据寄存器)
MOVLW 00H ;
MOVWF 0BBH ;商低8位
MOVLW 00H ;
MOVWF 0BCH ;商高8位
MOVLW 03H ;
MOVWF 0BDH ;除数低8位
MOVLW 0E8H ;
MOVWF 0BEH ;除数高8位
MOVLW 16 ;
MOVWF 0BFH ;位数寄存器
CF02:
RLF 0B8H,1 ;带进位左移被除数
RLF 0B7H,1 ;
RLF 0BAH,1 ;带进位处理被除数数据
RLF 0B9H,1 ;
BCF STATUS,C ;清C
MOVFW 0BEH ;
SUBWF 0BAH,0 ;用处理出来的被除数减除数
MOVWF 0C1H ;
MOVFW 0BDH ;
SUBWFC 0B9H,0 ;用处理出来的被除数减除数
MOVWF 0C0H ;
BTFSS STATUS,C ;判断处理出来的被除数是否比除数大
GOTO CF03 ;
MOVFW 0C1H ;是则保存商到被除数处理数据寄存器
MOVWF 0BAH ;
MOVFW 0C0H ;
MOVWF 0B9H ;
CF03:
RLF 0BCH,1 ;将相减后的C左移进商寄存器
RLF 0BBH,1 ;
DECFSZ 0BFH,1 ;判断是否完成运算
GOTO CF02 ;
GOTO $
end
;============================================
- 芯海单片机乘法运算(11-30)
- 芯海单片机定时中断(11-30)
- 芯海单片机用CS5817芯片控制16位数码管(11-30)
- 芯海单片机跑灯程序(11-30)
- 芯海单片机按开始键后实现闪烁(04-11)
- 高效的C编程之:除法运算(09-30)