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

📄 div31.asm

📁 通过调试的有用的单片机控制程序
💻 ASM
字号:
;利用的是在被除数和除数之间的移位相减的原理
;其减后的数据将是:余数放在DV31BUFF,商在原来被除数里
;用这个算法能方便的在商加一的算法上,后面方便的移位
;(由于是高字节减,所以没次商都必须移位乘2)
;
DV31DATH        DATA    40H
DV31DATM        DATA    41H
DV31DATL        DATA    42H
DVCHUSHU        DATA    43H
DV31BUFF        DATA    44H
ORG     000H
AJMP    DV31
DV31:	CLR	C             ;判断益出和全为零
        MOV     A,DVCHUSHU    ;如除数为0则直接退出 
        JZ      DV31OV
        MOV     A,DV31DATH
        JNZ     DV30
        MOV     A,DV31DATM
        JNZ     DV30
	MOV	A,DV31DATL
	JZ      EXIT
	SUBB	A,DVCHUSHU
	JNC	DV30
DV31OV: SETB	OV
	SJMP    $		;商溢出
	;RET
DV30:	MOV     DV31BUFF,#0     ;对缓存的初始较为重要
        MOV	R6,#18H		;求三字节除以但字节
DIVR:	CLR	C
        MOV     A,DV31DATL
        RLC     A
        MOV     DV31DATL,A
        MOV     A,DV31DATM
        RLC     A
        MOV     DV31DATM,A
        MOV     A,DV31DATH
        RLC     A
        MOV     DV31DATH,A
        MOV     A,DV31BUFF
        RLC     A
        MOV     DV31BUFF,A
        CPL     C
        MOV     F0,C        
        CLR     C
        SUBB    A,DVCHUSHU
        ANL     C,F0
        JC      DIVR2
        MOV     DV31BUFF,A
        INC     DV31DATL
DIVR2:  DJNZ    R6,DIVR
/* ************************************************ */
        MOV	A,DV31BUFF		;四舍五入
        ADD     A,DV31BUFF
	JC	DM25
	SUBB    A,DVCHUSHU
	JC	EXIT
DM25:	INC	DV31DATL
	MOV     A,DV31DATL
	JNZ	EXIT
	INC	DV31DATM
	MOV     A,DV31DATM
	JNZ     EXIT
	INC     DV31DATH 
/* ********************************************* */ 
EXIT:   CLR     OV
        SJMP    $
        END
        
                   
        

⌨️ 快捷键说明

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