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

📄

📁 该文件里包含了大量的常用经典的程序代码,可以为51编程者带来事半功倍的效果,
💻
📖 第 1 页 / 共 2 页
字号:
	MOV	A,R7
	RLC	A
	MOV	R7,A
	MOV	A,R6
	RLC	A
	MOV	R6,A
	DEC	R5
	AJMP	RCP
RCP2:	MOV	R2,#1
	MOV	R3,#80H
	MOV	R4,#0
	LCALL	DIV3
	LCALL	MOV0
	RET

;------------------------------------------------;

;****** [浮点数平方] FSQU ***********************;
	
;入口条件:	操作数在[R0]中。
;出口信息:	OV=0时,平方值仍然在[R0]中,OV=1时溢出。
;影响资源:	PSW、A、B、R2~R7、位1EH、1FH      堆栈需求:  9字节
;调用子程序:
	
FSQU:	MOV	A,R0
	XCH	A,R1
	PUSH	ACC
	LCALL	FMUL
	POP	ACC
	MOV	R1,A
	RET           
	
;------------------------------------------------;

;****** [浮点数开平方(快速逼近算法)] FSQR *******;

;入口条件:	操作数在[R0]中。
;出口信息:	OV=0时,平方根仍在[R0]中,OV=1时,负数开平方出错。
;影响资源:	PSW、A、B、R2~R7      堆栈需求:  2字节
;调用子程序:    无

FSQR:	MOV	A,@R0
	JNB	ACC.7,SQR
	SETB	OV
	RET
SQR:	INC	R0
	INC	R0
	MOV	A,@R0
	DEC	R0
	ORL	A,@R0
	DEC	R0
	JNZ	SQ
	MOV	@R0,#41H
	CLR	OV
	RET
SQ:	MOV	A,@R0
	MOV	C,ACC.6
	MOV	ACC.7,C
	INC	A
	CLR	C
	RRC	A
	MOV	@R0,A
	INC	R0
	JC	SQR0
	MOV	A,@R0
	RRC	A
	MOV	@R0,A
	INC	R0
	MOV	A,@R0
	RRC	A
	MOV	@R0,A
	DEC	R0
SQR0:	MOV	A,@R0
	JZ	SQR9
	MOV	R2,A
	INC	R0
	MOV	A,@R0
	MOV	R3,A
	MOV	A,R2
	ADD	A,#57H
	JC	SQR2
	ADD	A,#45H
	JC	SQR1
	ADD	A,#24H
	MOV	B,#0E3H
	MOV	R4,#80H
	SJMP	SQR3
SQR1:	MOV	B,#0B2H
	MOV	R4,#0A0H
	SJMP	SQR3
SQR2:	MOV	B,#8DH
	MOV	R4,#0D0H
SQR3:	MUL	AB
	MOV	A,B
	ADD	A,R4
	MOV	R4,A
	MOV	B,A
	MUL	AB
	XCH	A,R3
	CLR	C
	SUBB	A,R3
	MOV	R3,A
	MOV	A,B
	XCH	A,R2
	SUBB	A,R2
	MOV	R2,A
SQR4:	SETB	C
	MOV	A,R4
	RLC	A
	MOV	R6,A
	CLR	A
	RLC	A
	MOV	R5,A
	MOV	A,R3
	SUBB	A,R6
	MOV	B,A
	MOV	A,R2
	SUBB	A,R5
	JC	SQR5
	INC	R4
	MOV	R2,A
	MOV	R3,B
	SJMP	SQR4
SQR5:	MOV	A,R4
	XCH	A,R2
	RRC	A
	MOV	F0,C
	MOV	A,R3
	MOV	R5,A
	MOV	R4,#8
SQR6:	CLR	C
	MOV	A,R3
	RLC	A
	MOV	R3,A
	CLR	C
	MOV	A,R5
	SUBB	A,R2
	JB	F0,SQR7
	JC	SQR8
SQR7:	MOV	R5,A
	INC	R3
SQR8:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	F0,C
	DJNZ	R4,SQR6
	MOV	A,R3
	MOV	@R0,A
	DEC	R0
	MOV	A,R2
	MOV	@R0,A
SQR9:	DEC	R0
	CLR	OV
	RET

;------------------------------------------------;     

;****** [双字节十六进制定点数转换成格式化浮点数] DTOF ;

;入口条件:	双字节定点数的绝对值在[R0]中,数符在位1FH中,整数部分的位数在A中。
;出口信息:	转换成格式化浮点数在[R0]中(三字节)。
;影响资源:	PSW、A、R2、R3、R4、位1FH  堆栈需求:  6字节
;调用子程序:    2个

DTOF:	MOV	R2,A
	MOV	A,@R0
	MOV	R3,A
	INC	R0
	MOV	A,@R0
	MOV	R4,A
	DEC	R0
	LCALL	RLN
	LCALL	MOV0
	RET
	
;------------------------------------------------;     

;****** [格式化浮点数转换成双字节定点数] FTOD ***;

;入口条件:	格式化浮点操作数在[R0]中。
;出口信息:	OV=1时溢出,OV=0时转换成功:定点数的绝对值在[R0]中(双字节),数符
;          	在位1FH中,F0=1 时为整数,CY=1时为一字节整数一字节小数,否则为纯小数。
;影响资源:	PSW、A、B、R2、R3、R4、位1FH    堆栈需求:  6字节
;调用子程序:    2个

FTOD:	LCALL	MVR0
	MOV	A,R2
	JZ	FTD4
	JB	ACC.7,FTD4
	SETB	C
	SUBB	A,#10H
	JC	FTD1
	SETB	OV
	RET
FTD1:	SETB	C
	MOV	A,R2
	SUBB	A,#8
	JC	FTD3
FTD2:	MOV	B,#10H
	LCALL	FTD8
	SETB	F0
	CLR	C
	CLR	OV
	RET
FTD3:	MOV	B,#8
	LCALL	FTD8
	SETB	C
	CLR	F0
	CLR	OV
	RET
FTD4:	MOV	B,#0
	LCALL	FTD8
	CLR	OV
	CLR	F0
	CLR	C
	RET
FTD8:	MOV	A,R2
	CJNE	A,B,FTD9
	MOV	A,R3
	MOV	@R0,A
	INC	R0
	MOV	A,R4
	MOV	@R0,A
	DEC	R0
	RET
FTD9:	CLR	C
	LCALL	RR1
	AJMP	FTD8 
	
;------------------------------------------------;
     
;****** [浮点BCD码转换成格式化浮点数] BTOF ******;

;入口条件:	浮点BCD码操作数在[R0]中。
;出口信息:	转换成的格式化浮点数仍在[R0]中。
;影响资源:	PSW、A、B、R2~R7、位1DH~1FH  堆栈需求:6字节
;调用子程序:    2个

BTOF:	INC	R0
	INC	R0
	MOV	A,@R0
	MOV	R7,A
	DEC	R0
	MOV	A,@R0
	MOV	R6,A
	DEC	R0
	ORL	A,R7
	JNZ	BTF0
	MOV	@R0,#41H
	RET
BTF0:	MOV	A,@R0
	MOV	C,ACC.7
	MOV	1DH,C
	CLR	1FH
	MOV	C,ACC.6
	MOV	ACC.7,C
	MOV	@R0,A
	JNC	BTF1
	ADD	A,#19
	JC	BTF2
	MOV	@R0,#41H
	INC	R0
	MOV	@R0,#0
	INC	R0
	MOV	@R0,#0
	DEC	R0
	DEC	R0
	RET
BTF1:	SUBB	A,#19
	JC	BTF2
	MOV	A,#3FH
	MOV	C,1DH
	MOV	ACC.7,C
	MOV	@R0,A
	INC	R0
	MOV	@R0,#0FFH
	INC	R0
	MOV	@R0,#0FFH
	DEC	R0
	DEC	R0
	RET
BTF2:	CLR	A
	MOV	R4,A
	MOV	R3,A
	MOV	R2,#10H
BTF3:	MOV	A,R7
	ADD	A,R7
	DA	A
	MOV	R7,A
	MOV	A,R6
	ADDC	A,R6
	DA	A
	MOV	R6,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	DEC	R2
	JNB	ACC.7,BTF3
	MOV	A,R6
	ADD	A,#0B0H
	CLR	A
	ADDC	A,R4
	MOV	R4,A
	CLR	A
	ADDC	A,R3
	MOV	R3,A
	JNC	BTF4
	MOV	R3,#80H
	INC	R2
BTF4:	MOV	DPTR,#BTFL
	MOV	A,@R0
	ADD	A,#19
	MOV	B,#3
	MUL	AB
	ADD	A,DPL
	MOV	DPL,A
	JNC	BTF5
	INC	DPH
BTF5:	CLR	A
	MOVC	A,@A+DPTR
	MOV	C,ACC.6
	MOV	ACC.7,C
	MOV	R5,A
	MOV	A,#1
	MOVC	A,@A+DPTR
	MOV	R6,A
	MOV	A,#2
	MOVC	A,@A+DPTR
	MOV	R7,A
	LCALL	MUL1
	MOV	C,1DH
	MOV	1FH,C
	ACALL	MOV0
	RET              

;------------------------------------------------;

;****** [格式化浮点数转换成浮点BCD码] FTOB ******;

;入口条件:	格式化浮点操作数在[R0]中。
;出口信息:	转换成的浮点BCD码仍在[R0]中。
;影响资源:	PSW、A、B、R2~R7、位1DH~1FH   堆栈需求:6字节
;调用子程序:    3个
	
FTOB:	INC	R0
	MOV	A,@R0
	INC	R0
	ORL	A,@R0
	DEC	R0
	DEC	R0
	JNZ	FTB0
	MOV	@R0,#41H
	RET
FTB0:	MOV	A,@R0
	MOV	C,ACC.7
	MOV	1DH,C
	CLR	ACC.7
	MOV	@R0,A
	LCALL	MVR0
	MOV	DPTR,#BFL0
	MOV	B,#0
	MOV	A,R2
	JNB	ACC.7,FTB1
	MOV	DPTR,#BTFL
	MOV	B,#0EDH
	ADD	A,#16
	JNC	FTB1
	MOV	DPTR,#BFLN
	MOV	B,#0FAH
FTB1:	CLR	A
	MOVC	A,@A+DPTR
	MOV	C,ACC.6
	MOV	ACC.7,C
	MOV	R5,A
	MOV	A,#1
	MOVC	A,@A+DPTR
	MOV	R6,A
	MOV	A,#2
	MOVC	A,@A+DPTR
	MOV	R7,A
	MOV	A,R5
	CLR	C
	SUBB	A,R2
	JB	ACC.7,FTB2
	JNZ	FTB3
	MOV	A,R6
	CLR	C
	SUBB	A,R3
	JC	FTB2
	JNZ	FTB3
	MOV	A,R7
	CLR	C
	SUBB	A,R4
	JC	FTB2
	JNZ	FTB3
	MOV	R5,B
	INC	R5
	MOV	R6,#10H
	MOV	R7,#0
	SJMP	FTB6
FTB2:	INC	DPTR
	INC	DPTR
	INC	DPTR
	INC	B
	SJMP	FTB1	
FTB3:	PUSH	B
	LCALL	DIV3
FTB4:	MOV	A,R2
	JZ	FTB5
	CLR	C
	LCALL	RR1
	SJMP	FTB4
FTB5:	POP	ACC
	MOV	R5,A
	LCALL	HB2
	MOV	R6,A
	LCALL	HB2
	MOV	R7,A
	MOV	A,R3
	RLC	A
	CLR	A
	ADDC	A,R7
	DA	A
	MOV	R7,A
	CLR	A
	ADDC	A,R6
	DA	A
	MOV	R6,A
	JNC	FTB6
	MOV	R6,#10H
	INC	R5
FTB6:	INC	R0
	INC	R0
	MOV	A,R7
	MOV	@R0,A
	DEC	R0
	MOV	A,R6
	MOV	@R0,A
	DEC	R0
	MOV	A,R5
	MOV	C,1DH
	MOV	ACC.7,C
	MOV	@R0,A	
	RET
HB2:	MOV	A,R4
	MOV	B,#100
	MUL	AB
	MOV	R4,A
	MOV	A,B
	XCH	A,R3
	MOV	B,#100
	MUL	AB
	ADD	A,R3
	MOV	R3,A
	JNC	HB21
	INC	B
HB21:	MOV	A,B
	MOV	B,#10
	DIV	AB
	SWAP	A
	ORL	A,B
	RET
	
BTFL:	DB	41H,0ECH,1EH	;1.0000E-19
	DB	45H,93H,93H	;1.0000E-18
	DB	48H,0B8H,78H	;1.0000E-17
	DB	4BH,0E6H,96H	;1.0000E-16
	DB	4FH,90H,1DH	;1.0000E-15
	DB	52H,0B4H,25H	;1.0000E-14
	DB	55H,0E1H,2EH	;1.0000E-13
	DB	59H,8CH,0BDH	;1.0000E-12
	DB	5CH,0AFH,0ECH	;1.0000E-11
	DB	5FH,0DBH,0E7H	;1.0000E-10
	DB	63H,89H,70H	;1.0000E-9
	DB	66H,0ABH,0CCH	;1.0000E-8
	DB	69H,0D6H,0C0H	;1.0000E-7
BFLN:	DB	6DH,86H,38H	;1.0000E-6
	DB	70H,0A7H,0C6H	;1.0000E-5
	DB	73H,0D1H,0B7H	;1.0000E-4
	DB	77H,83H,12H	;1.0000E-3
	DB	7AH,0A3H,0D7H	;1.0000E-2
	DB	7DH,0CCH,0CDH	;1.0000E-1
BFL0:	DB	1,80H,00H	;1.0000
	DB	4,0A0H,00H	;1.0000E1
	DB	7,0C8H,00H	;1.0000E2
	DB	0AH,0FAH,00H	;1.0000E3
	DB	0EH,9CH,40H	;1.0000E4
	DB	11H,0C3H,50H	;1.0000E5
	DB	14H,0F4H,24H	;1.0000E6
	DB	18H,98H,97H	;1.0000E7
	DB	1BH,0BEH,0BCH	;1.0000E8
	DB	1EH,0EEH,6BH	;1.0000E9
	DB	22H,95H,03H	;1.0000E10
	DB	25H,0BAH,44H	;1.0000E11
	DB	28H,0E8H,0D5H	;1.0000E12
	DB	2CH,91H,85H	;1.0000E13
	DB	2FH,0B5H,0E6H	;1.0000E14
	DB	32H,0E3H,60H	;1.0000E15
	DB	36H,8EH,1CH	;1.0000E16
	DB	39H,31H,0A3H	;1.0000E17
	DB	3CH,0DEH,0BH	;1.0000E18
	DB	40H,8AH,0C7H	;1.0000E19

;------------------------------------------------;

⌨️ 快捷键说明

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