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

📄 div.xsf

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 XSF
字号:

; Sub routine for Division.

S1	EQU	08H
S2	EQU	09H
S3	EQU	0AH
S4	EQU	0BH

E1	EQU	0CH
E2	EQU	0DH
E3	EQU	0EH
E4	EQU	0FH

W1	EQU	10H
W2	EQU	11H
W3	EQU	12H
W4	EQU	13H

K1	EQU	14H
K2	EQU	15H
K3	EQU	16H
K4	EQU	17H

CNT	EQU	18H

MOV SP,#30H

MOV E1,#32H
MOV E2,#0DH
MOV E3,#00H
MOV E4,#43H

MOV S1,#10H
MOV S2,#00H
MOV S3,#50H
MOV S4,#0FH


MOV K1,#00H
MOV K2,#00H
MOV K3,#00H
MOV K4,#00H


;-----------------------32BIT / 32BIT DIVISION RUTINE-------------------
; avoide devide by zero error E/S = result(k)
	MOV A,S1
	ADD A,S2
	JNZ DOWN
	MOV A,S3
	ADD A,S4
	JNZ DOWN
	ERROR:
DOWN:
; shift until substraction become less than zero, keep counting----------
	MOV CNT,#00H
	CALL SUB3224
	JC ENDIT
	
	 DOAGAIN:
	 	INC CNT
		CALL SHIFTER24BITL
		CALL SUB3224
		
		JNC KHALI1
		CALL SHIFTER24BITR
		JMP LOOPBACK
		DEC CNT
KHALI1:

		MOV A,S1
	        JNB ACC.7,DOAGAIN

	 
LOOPBACK: 			
	 	CALL SUB3224
	 	JC BELOW
	 	MOV E1,W1
	 	MOV E2,W2
	 	MOV E3,W3
	 	MOV E4,W4
;PUT ONE
	SETB C
	MOV A,K1
	RLC A
	MOV K1,A
	
	MOV A,K2
	RLC A
	MOV K2,A

	MOV A,K3
	RLC A
	MOV K3,A

	MOV A,K4
	RLC A
	MOV K4,A
	
	CLR C
;-------------
JMP OOOOO
	 BELOW:
;PUT ZERO
 	CLR C
 	
	MOV A,K1
	ADD A,K1
	MOV K1,A
	
	MOV A,K2
	RLC A
	MOV K2,A

	MOV A,K3
	RLC A
	MOV K3,A

	MOV A,K4
	RLC A
	MOV K4,A
	
OOOOO:	CLR C
;-------------
		CALL SHIFTER24BITR
	 	DJNZ CNT,LOOPBACK
RETT:	JMP RETT
	
	
	
ENDIT:
  	MOV K1,#00H
  	MOV K2,#00H
  	MOV K3,#00H
  	MOV K4,#01H
RET
;-----------------    24-bit Shifter    -----------------------------
SHIFTER24BITR:
;S1:S2:S3:S4
	CLR C
	MOV A,S1
	RRC A
	MOV S1,A
	
	MOV A,S2
	RRC A
	MOV S2,A

	MOV A,S3
	RRC A
	MOV S3,A
	
	MOV A,S4
	RRC A
	MOV S4,A

	CLR C
RET

SHIFTER24BITL:
	MOV A,S4
	ADD A,S4 ;RLC A
	MOV S4,A
	
	MOV A,S3
	RLC A
	MOV S3,A

	MOV A,S2
	RLC A
	MOV S2,A

	MOV A,S1
	RLC A
	MOV S1,A
	
	CLR C

RET
;-----------------    32-BIT-24-BIT SUBSTARCTOR ---------------------
SUB3224:
;E1:E2:E3:E4 - S1:S2:S3:S4 = W1:W2:W3:W4
	CLR C
	MOV A,E4
	SUBB A,S4
	MOV W4,A
	
	MOV A,E3
	SUBB A,S3
	MOV W3,A

	MOV A,E2
	SUBB A,S2
	MOV W2,A

	MOV A,E1
	SUBB A,S1
	MOV W1,A
RET
END

⌨️ 快捷键说明

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