⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.asm

📁 VCP201_CODE is a FPGA source code.
💻 ASM
字号:
;------------------------------------------------------------
; Name : udiv
; Parm : hi_byte, lo_byte:unsigned char
;        divisor:8bits 
; Retn : hi_byte.lo_byte:16bits unsigned quotient
;        rem:8bits remainder
; Desc : 16/8 unsigned division
; Vars : temp_buf1, temp_buf2
;------------------------------------------------------------
udiv:
;;        bsf     STATUS,RP0      ; to page 1
        clrf    rem
        movlw   8            
        movwf   temp_buf1
        
udiv_loop1:
        rlf     hi_byte,W
        rlf     rem
        movf    divisor,W
        subwf   rem
        btfsc   STATUS,C
        goto    udiv_2
        addwf   rem,F
        bcf     STATUS,C
udiv_2:
        rlf     hi_byte,F
        decfsz  temp_buf1,F
        goto    udiv_loop1


        movlw   8
        movwf   temp_buf1
        clrf    temp_buf2

udiv_loop2:
        rlf     lo_byte,W
        rlf     rem,F     
        rlf     temp_buf2,F
        movf    divisor,W
        subwf   rem,F
        clrw
        btfss   STATUS,C
        movlw   1
        subwf   temp_buf2,F
        btfsc   STATUS,C
        goto    udiv_3
        movf    divisor,W
        addwf   rem,F
        clrw
        btfsc   STATUS,C
        movlw   1
        addwf   temp_buf2,F
        bcf     STATUS,C
udiv_3:
        rlf     lo_byte,F
        decfsz  temp_buf1,F
        goto    udiv_loop2
        
;;        bcf     STATUS,RP0      ; to page 0
        return



;------------------------------------------------------------
; Name : umul
; Parm : hi_byte, lo_byte:unsigned char
; Retn : hi_byte.lo_byte:16bits unsigned product
; Desc : 8x8 unsigned multiply
; Vars : mul_cnt
;------------------------------------------------------------
umul:
;;        bsf     STATUS,RP0      ; to page 1
        
        movlw   8
        movwf   mul_cnt
        movf    hi_byte,W
        clrf    hi_byte
        bcf     STATUS,C
umul_loop:
        rrf     hi_byte,F
        rrf     lo_byte,F
        btfsc   STATUS,C
        addwf   hi_byte,F
        decfsz  mul_cnt,F
        goto    umul_loop
        rrf     hi_byte,F
        rrf     lo_byte,F
        
;;        bcf     STATUS,RP0      ; to page 1
        
        return


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -