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

📄 bd.asm

📁 单片机程序设计基础 随书光盘
💻 ASM
字号:
;仪器系数自动标定算法。
FORMER	EQU	2000H	;五个模型的已知含量数据存放首址。
CPS	EQU	2030H	;五个模型的检测数据存放首址。
RTKS1	EQU	2060H	;9个小写字母系数存放首址。
RTKS2	EQU	2080H	;9个大写字母系数存放首址。
RTKS0	EQU	209BH	;3个本底计数率存放首址。
POINT1	DATA	13H	;辅助指针1。
POINT2	DATA	14H	;辅助指针2。
CONT	DATA	2FH	;计数器。
TEMP	EQU	5DH	;浮点数辅助存放单元首址。
OK	BIT	00H	;标定成功标志。

FLAG	DATA	23H
PFA	BIT	FLAG.7
PFB	BIT	FLAG.6
PFC	BIT	FLAG.5
PFD	BIT	FLAG.4

	ORG	0000H
	LJMP	TEST
	
	ORG	100H
TEST:	MOV	SP,#67H	;设置系统堆栈。
	CLR	OK	;初始化成功标志。
	MOV	P2,#20H	;片外RAM使用页面。
	MOV	R0,#0	;将模型含量和检测到的计数率拷贝到片外RAM中。
	MOV	DPTR,#QQQ
COPY:	CLR	A
	MOVC	A,@A+DPTR
	MOVX	@R0,A
	INC	R0
	INC	DPTR
	CJNE	R0,#60H,COPY
	LCALL	BD	;调用仪器系数标定算法。
STOP:	LJMP	STOP	;标定结束。

;标定的结果:
;R1: 4.287 ( 2080H:03H,89H,2EH )
;R2:-2.185 ( 2083H:82H,8BH,0D8H )
;R3:-0.1944 ( 2086H:0FEH,0C7H,09H )
;T1:-0.3185 ( 2089H:0FFH,0A3H,12H )
;T2: 10.56 ( 208CH:04H,0A8H,0F6H )
;T3:-0.2129 ( 208FH:0FEH,0DAH,08H )
;K1:-0.3802 ( 2092H:0FFH,0C2H,0A9H )
;K2:-0.1864 ( 2095H:0FEH,0BEH,0E0H )
;K3: 0.3893 ( 2098H:7FH,0C7H,54H )
;铀道本底: 0.2785 ( 209BH:7FH,8EH,94H )
;钍道本底: 0.1106 ( 209EH:7DH,0E2H,78H )
;钾道本底: 0.6740 ( 20A1H:00H,0ACH,90H )

BD :	CLR	OK	;初始化成功标志。
	MOV	P2,#HIGH(RTKS1)	;将标定结果存放空间清零。
	MOV	R0,#LOW(RTKS1)
	CLR	A
INIT1 :	MOVX	@R0,A
	INC	R0
	CJNE	R0,#0B0H,INIT1
	MOV	CONT,#5	;准备进行5次迭代运算。
BIAD :	MOV	POINT1,#0;铀道。
	MOV	POINT2,#60H;系数存放首址。
	LCALL	RTK	;计算系数r1、r2、r3。
	MOV	POINT1,#3;钍道。
	MOV	POINT2,#69H;系数存放首址。
	LCALL	RTK	;计算系数t1、t2、t3。
	MOV	POINT1,#6;钾道。
	MOV	POINT2,#72H;系数存放首址。
	LCALL	RTK	;计算系数k1、k2、k3。
	MOV	R0,#60H	;将刚刚计算出来的9个系数,
	MOV	R1,#30H	;存放的片内RAM中。
BID1 :	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#4BH,BID1
	MOV	R0,#24H	;将零值模型的含量数据,
	MOV	R1,#4BH	;也调入片内RAM中。
BID2 :	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#54H,BID2
	LCALL	JIS1	;计算理论上各道的净计数率。
	MOV	POINT1,#0;铀道。
	MOV	POINT2,#30H;零值模型铀道理论计数率。
	LCALL	DISU	;通过与实测计数率比较,求得铀道本底计数率。
	MOV	POINT1,#3;钍道。
	MOV	POINT2,#39H;零值模型钍道理论计数率。
	LCALL	DISU	;通过与实测计数率比较,求得钍道本底计数率。
	MOV	POINT1,#6;钾道。
	MOV	POINT2,#42H;零值模型钾道理论计数率。
	LCALL	DISU	;通过与实测计数率比较,求得钾道本底计数率。
	DEC	CONT	;完成一次迭代运算。
	MOV	A,CONT	;五次迭代运算全部完成否?
	JZ	BIDU	
	LJMP	BIAD	;未完成,继续迭代。
BIDU :	MOV	R0,#60H	;将9个小写字母系数,
	MOV	R1,#30H	;调入片内RAM中,准备转换成9个大写字母系数。
BIDK :	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R0,#7BH,BIDK
	LCALL	DETA	;求系数行列式的值。
	MOV	DPTR,#RTKS2;系数R1、R2、R3存放地址。
	MOV	R2,#3CH
	MOV	R3,#45H
	LCALL	KTR	;计算并存放R1。
	MOV	R2,#45H
	MOV	R3,#33H
	LCALL	KTR	;计算并存放R2。
	MOV	R2,#33H
	MOV	R3,#3CH
	LCALL	KTR	;计算并存放R3。
	MOV	DPTR,#RTKS2+9;系数T1、T2、T3存放地址。
	MOV	R2,#42H
	MOV	R3,#39H
	LCALL	KRT	;计算并存放T1。
	MOV	R2,#30H
	MOV	R3,#42H
	LCALL	KRT	;计算并存放T2。
	MOV	R2,#39H
	MOV	R3,#30H
	LCALL	KRT	;计算并存放T3。
	MOV	DPTR,#RTKS2+18;系数K1、K2、K3存放地址。
	MOV	R2,#39H
	MOV	R3,#42H
	LCALL	KTR	;计算并存放K1。
	MOV	R2,#42H
	MOV	R3,#30H
	LCALL	KTR	;计算并存放K2。
	MOV	R2,#30H
	MOV	R3,#39H
	LCALL	KTR	;计算并存放K3。
	MOV	R1,#4BH	;将混合模型的实测计数率,
	MOV	R0,#5AH	;调入片内RAM中。
MM :	MOVX	A,@R1
	MOV	@R0,A
	INC	R0
	INC	R1
	CJNE	R0,#63H,MM
	LCALL	JISN	;用转换后的系数计算混合模型的含量数据。
	MOV	R0,#1BH	;取混合模型的实际含量数据。
	MOV	R1,#54H
BID5 :	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#TEMP,BID5
	MOV	R0,#30H	;指向计算出来的铀含量。
	MOV	R1,#54H	;指向实际铀含量。
	MOV	TEMP,#7CH;允许误差范围为百分之四。
	MOV	TEMP+1,#0A3H
	MOV	TEMP+2,#0D8H
	LCALL	COVV	;计算铀含量相对测量误差。
	JNB	ACC.7,BIDE;超过百分之四,标定失败。
	MOV	R0,#39H	;指向计算出来的钍含量。
	MOV	R1,#57H	;指向实际钍含量。
	MOV	TEMP,#7CH;允许误差范围为百分之六。
	MOV	TEMP+1,#0F5H
	MOV	TEMP+2,#0C3H
	LCALL	COVV	;计算钍含量相对测量误差。
	JNB	ACC.7,BIDE;超过百分之六,标定失败。
	MOV	R0,#42H	;指向计算出来的钾含量。
	MOV	R1,#5AH	;指向实际钾含量。
	MOV	TEMP,#7DH;允许误差范围为百分之十二。
	MOV	TEMP+1,#0F5H
	MOV	TEMP+2,#0C3H
	LCALL	COVV	;计算钾含量相对测量误差。
	JNB	ACC.7,BIDE;超过百分之十二,标定失败。
	SETB	OK	;各项误差均未超标,标定成功。
BIDE :	RET		;算法结束。

KRT:	MOV	A,R2
	MOV	R0,A
	MOV	R1,#4BH
	LCALL	KRT3
	INC	R0
	INC	R0
	INC	R0
	LCALL	KRT3
	MOV	A,R3
	MOV	R0,A
	MOV	R1,#57H
	LCALL	KRT3
	INC	R0
	INC	R0
	INC	R0
	LCALL	KRT3
	LJMP	KTR2
KRT3:	MOV	R4,#3
KRT4:	MOV	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	DJNZ	R4,KRT4
	RET

KTR:	MOV	A,R2
	MOV	R0,A
	MOV	R1,#4BH
KTR0:	MOV	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#51H,KTR0
	MOV	A,R3
	MOV	R0,A
	MOV	R1,#57H
KTR1:	MOV	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#5DH,KTR1
KTR2:	MOV	R0,#57H
	MOV	R1,#4EH
	LCALL	FMUL
	MOV	R0,#4BH
	MOV	R1,#5AH
	LCALL	FMUL
	MOV	R1,#57H
	LCALL	FSUB
	MOV	R1,#54H
	LCALL	FDIV
	MOV	A,4BH
	MOVX	@DPTR,A
	INC	DPTR
	MOV	A,4CH
	MOVX	@DPTR,A
	INC	DPTR
	MOV	A,4DH
	MOVX	@DPTR,A
	INC	DPTR
	RET

COVV:	LCALL	FSUB
	MOV	A,@R0
	CLR	ACC.7
	MOV	@R0,A
	LCALL	FDIV
	MOV	R1,#5DH
	LJMP	FSUB
DISU:	MOV	A,#54H
	ADD	A,13H
	MOV	R0,A
	MOVX	A,@R0
	MOV	5DH,A
	INC	R0
	MOVX	A,@R0
	MOV	5EH,A
	INC	R0
	MOVX	A,@R0
	MOV	5FH,A
	MOV	R1,14H
	MOV	R0,#5DH
	LCALL	SUBN
	MOV	A,13H
	ADD	A,#9BH
	MOV	R0,A
	MOV	A,5DH
	MOVX	@R0,A
	INC	R0
	MOV	A,5EH
	MOVX	@R0,A
	INC	R0
	MOV	A,5FH
	MOVX	@R0,A
	RET

RTK:	MOV	R0,#0
	MOV	R1,#30H
RTK0:	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#4BH,RTK0
	MOV	A,13H
	ADD	A,#9BH
	MOV	R1,A
	MOV	R0,#5DH
	LCALL	RDF
	MOV	A,#30H
	ADD	A,13H
	MOV	R1,A
	MOV	R0,#4BH
	LCALL	RDF
	MOV	R0,#4EH
	MOV	A,#39H
	ADD	A,13H
	MOV	R1,A
	LCALL	RDF
	MOV	R0,#51H
	MOV	A,#42H
	ADD	A,13H
	MOV	R1,A
	LCALL	RDF
	MOV	R1,#5DH
	MOV	R0,#4BH
	LCALL	SUBN
	MOV	R0,#4EH
	LCALL	SUBN
	MOV	R0,#51H
	LCALL	SUBN
	LCALL	XYZ
	MOV	R0,#5DH
	MOV	R1,14H
RTK1:	MOV	A,@R0
	MOVX	@R1,A
	INC	R0
	INC	R1
	CJNE	R0,#66H,RTK1
	RET

RDF:	MOV	B,#3
RDF0:	MOVX	A,@R1
	MOV	@R0,A
	INC	R0
	INC	R1
	DJNZ	B,RDF0
	RET

SUBN:	LCALL	FSUB
	MOV	A,@R0
	JB	ACC.7,SUBE
	RET
SUBZ:	LCALL	FSUB
	MOV	A,@R0
	JBC	ACC.7,SBZE
SUBE:	CLR	A
	INC	R0
	MOV	@R0,A
	INC	R0
	MOV	@R0,A
	DEC	R0
	DEC	R0
	MOV	A,#41H
SBZE:	MOV	@R0,A
	RET

JISN:	MOV	R0,#80H	
	MOV	R1,#30H
JIN0:	MOVX	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	CJNE	R1,#54H,JIN0
	MOV	R0,#4BH
	MOV	R1,#5AH
	LCALL	SUBZ
	MOV	R1,#5DH
	MOV	R0,#4EH
	LCALL	SUBZ
	MOV	R1,#60H
	MOV	R0,#51H
	LCALL	SUBZ
JIS1:	MOV	R1,#4BH
	MOV	R0,#30H
	LCALL	FMUL
	MOV	R0,#39H
	LCALL	FMUL
	MOV	R0,#42H
	LCALL	FMUL
	MOV	R1,#4EH
	MOV	R0,#33H
	LCALL	FMUL
	MOV	R0,#3CH
	LCALL	FMUL
	MOV	R0,#45H
	LCALL	FMUL
	MOV	R1,#51H
	MOV	R0,#36H
	LCALL	FMUL
	MOV	R0,#3FH
	LCALL	FMUL
	MOV	R0,#48H
	LCALL	FMUL
	MOV	R0,#30H
	MOV	R1,#33H
	LCALL	FADD
	MOV	R1,#36H
	LCALL	FADD
	MOV	R0,#39H
	MOV	R1,#3CH
	LCALL	FADD
	MOV	R1,#3FH
	LCALL	FADD
	MOV	R0,#42H
	MOV	R1,#45H
	LCALL	FADD
	MOV	R1,#48H
	LJMP	FADD

XYZ:	LCALL	DETA
	MOV	63H,54H
	MOV	64H,55H
	MOV	65H,56H
	MOV	R0,#30H
	MOV	R1,#4BH
	LCALL	XCHM
	LCALL	DETA
	MOV	R1,#63H
	LCALL	FDIV
	MOV	5DH,54H
	MOV	5EH,55H
	MOV	5FH,56H
	MOV	R0,#30H
	MOV	R1,#4BH
	LCALL	XCHM
	MOV	R0,#33H
	MOV	R1,#4BH
	LCALL	XCHM
	LCALL	DETA
	MOV	R1,#63H
	LCALL	FDIV
	MOV	60H,54H
	MOV	61H,55H
	MOV	62H,56H
	MOV	R0,#33H
	MOV	R1,#4BH
	LCALL	XCHM
	MOV	R0,#36H
	MOV	R1,#4BH
	LCALL	XCHM
	LCALL	DETA
	MOV	R1,#63H
	LCALL	FDIV
	MOV	63H,54H
	MOV	64H,55H
	MOV	65H,56H
	RET

XCHM:	MOV	R2,#3
XCH1:	MOV	R3,#3
XCH2:	MOV	A,@R0
	XCH	A,@R1
	XCH	A,@R0
	INC	R0
	INC	R1
	DJNZ	R3,XCH2
	MOV	A,#6
	ADD	A,R0
	MOV	R0,A
	DJNZ	R2,XCH1
	RET

DETA:	MOV	5AH,30H	
	MOV	5BH,31H
	MOV	5CH,32H
	MOV	R0,#5AH
	MOV	R1,#45H
	LCALL	FMUL
	MOV	R1,#3FH
	LCALL	FMUL
	MOV	54H,33H
	MOV	55H,34H
	MOV	56H,35H
	MOV	R0,#54H
	MOV	R1,#39H
	LCALL	FMUL
	MOV	R1,#48H
	LCALL	FMUL
	MOV	R1,#5AH
	LCALL	FADD
	MOV	5AH,36H
	MOV	5BH,37H
	MOV	5CH,38H
	MOV	R0,#5AH
	MOV	R1,#3CH
	LCALL	FMUL
	MOV	R1,#42H
	LCALL	FMUL
	MOV	R1,#54H
	LCALL	FADD
	MOV	54H,30H
	MOV	55H,31H
	MOV	56H,32H
	MOV	R0,#54H
	MOV	R1,#3CH
	LCALL	FMUL
	MOV	R1,#48H
	LCALL	FMUL
	MOV	57H,36H
	MOV	58H,37H
	MOV	59H,38H
	MOV	R0,#57H
	MOV	R1,#39H
	LCALL	FMUL
	MOV	R1,#45H
	LCALL	FMUL
	MOV	R1,#54H
	LCALL	FADD
	MOV	54H,33H
	MOV	55H,34H
	MOV	56H,35H
	MOV	R0,#54H
	MOV	R1,#3FH
	LCALL	FMUL
	MOV	R1,#42H
	LCALL	FMUL
	MOV	R1,#57H
	LCALL	FADD
	MOV	R1,#5AH
	LJMP	FSUB	

QQQ:	DB	8,89H,66H	;铀模型的铀含量:137.4
	DB	4,99H,0C3H	;铀模型的钍含量:9.61
	DB	0,97H,0AH	;铀模型的钾含量:0.59
	DB	3,0A1H,9AH	;钍模型的铀含量:5.05
	DB	9,8EH,26H	;钍模型的钍含量:284.3
	DB	7FH,0BDH,71H	;钍模型的钾含量:0.37
	DB	2,9BH,85H	;钾模型的铀含量:2.43
	DB	4,86H,0B8H	;钾模型的钍含量:8.42
	DB	3,0B6H,0B8H	;钾模型的钾含量:5.71
	DB	7,0EDH,0CDH	;混合模型的铀含量:118.9
	DB	9,87H,73H	;混合模型的钍含量:270.9
	DB	2,0C3H,33H	;混合模型的钾含量:3.05
	DB	2,0B8H,0F6H	;零值模型的铀含量:2.89
	DB	3,0E9H,9AH	;零值模型的钍含量:7.3
	DB	0,0E6H,66H	;零值模型的钾含量:0.9
	DB	0,0AAH,55H
	DB	6,8DH,96H	;铀模型的铀道计数率:35.396
	DB	2,0B4H,0FFH	;铀模型的钍道计数率:2.828
	DB	6,97H,26H	;铀模型的钾道计数率:37.787
	DB	5,89H,3BH	;钍模型的铀道计数率:17.154
	DB	5,0E1H,50H	;钍模型的钍道计数率:28.164
	DB	5,0FCH,4CH	;钍模型的钾道计数率:31.537
	DB	2,8FH,14H	;钾模型的铀道计数率:2.236
	DB	1,0A8H,06H	;钾模型的钍道计数率:1.313
	DB	5,8EH,0A0H	;钾模型的钾道计数率:17.828
	DB	6,0B5H,0B2H	;混合模型的铀道计数率:45.424
	DB	5,0E3H,91H	;混合模型的钍道计数率:28.446
	DB	7,84H,55H	;混合模型的钾道计数率:66.166
	DB	1,0C5H,88H	;零值模型的铀道计数率:1.543
	DB	0,0EBH,59H	;零值模型的钍道计数率:0.919
	DB	3,93H,77H	;零值模型的钾道计数率:4.608
	DB	0,0AAH,55H

;以下是浮点子运算程序:
FSDT:	LCALL	MVR0
	LCALL	RLN
	LJMP	MOV0

FADD:	CLR	F0
	SJMP	AS
FSUB:	SETB	F0
AS:	LCALL	MVR1
	MOV	C,F0
	RRC	A
	XRL	A,@R1
	MOV	C,ACC.7
ASN:	MOV	PFB,C
	XRL	A,@R0
	RLC	A
	MOV	F0,C
	LCALL	MVR0
	LCALL	AS1
MOV0:	INC	R0
	INC	R0
	MOV	A,R4
	MOV	@R0,A
	DEC	R0
	MOV	A,R3
	MOV	@R0,A
	DEC	R0
	MOV	A,R2
	MOV	C,PFA
	MOV	ACC.7,C
	MOV	@R0,A
	CLR	ACC.7
	CLR	OV
	CJNE	A,#3FH,MV01
	SETB	OV
MV01:	MOV	A,@R0
	RET

MVR0:	MOV	A,@R0
	MOV	C,ACC.7
	MOV	PFA,C
	MOV	C,ACC.6
	MOV	ACC.7,C
	MOV	R2,A
	INC	R0
	MOV	A,@R0
	MOV	R3,A
	INC	R0
	MOV	A,@R0
	MOV	R4,A
	DEC	R0
	DEC	R0
	RET

MVR1:	MOV	A,@R1
	MOV	C,ACC.7
	MOV	PFB,C
	MOV	C,ACC.6
	MOV	ACC.7,C
	MOV	R5,A
	INC	R1
	MOV	A,@R1
	MOV	R6,A
	INC	R1
	MOV	A,@R1
	MOV	R7,A
	DEC	R1
	DEC	R1
	RET

AS1:	MOV	A,R6
	ORL	A,R7
	JZ	AS2
	MOV	A,R3
	ORL	A,R4
	JNZ	EQ1
	MOV	A,R6
	MOV	R3,A
	MOV	A,R7
	MOV	R4,A
	MOV	A,R5
	MOV	R2,A
	MOV	C,PFB
	MOV	PFA,C
AS2:	RET
EQ1:	MOV	A,R2
	XRL	A,R5
	JZ	AS4
	JB	ACC.7,EQ3
	MOV	A,R2
	CLR	C
	SUBB	A,R5
	JC	EQ4
EQ2:	CLR	C
	MOV	A,R6
	RRC	A
	MOV	R6,A
	MOV	A,R7
	RRC	A
	MOV	R7,A
	INC	R5
	ORL	A,R6
	JNZ	EQ1
	MOV	A,R2
	MOV	R5,A
	SJMP	AS4
EQ3:	MOV	A,R2
	JNB	ACC.7,EQ2
EQ4:	CLR	C
	LCALL	RR1
	ORL	A,R3
	JNZ	EQ1
	MOV	A,R5
	MOV	R2,A
AS4:	JB	F0,AS5
	MOV	A,R4
	ADD	A,R7
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R6
	MOV	R3,A
	JNC	AS2
	LJMP	RR1
AS5:	CLR	C
	MOV	A,R4
	SUBB	A,R7
	MOV	B,A
	MOV	A,R3
	SUBB	A,R6
	JC	AS6
	MOV	R4,B
	MOV	R3,A
	LJMP	RLN
AS6:	CPL	PFA
	CLR	C
	MOV	A,R7
	SUBB	A,R4
	MOV	R4,A
	MOV	A,R6
	SUBB	A,R3
	MOV	R3,A
RLN:	MOV	A,R3
	ORL	A,R4
	JNZ	RLN1
	MOV	R2,#0C1H
	RET
RLN1:	MOV	A,R3
	JB	ACC.7,RLN2
	CLR	C
	LCALL	RL1
	SJMP	RLN
RLN2:	CLR	OV
	RET
RL1:	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	DEC	R2
	CJNE	R2,#0C0H,RL1E
	CLR	A
	MOV	R3,A
	MOV	R4,A
	MOV	R2,#0C1H
RL1E:	CLR	OV
	RET

RR1:	MOV	A,R3
	RRC	A
	MOV	R3,A
	MOV	A,R4
	RRC	A
	MOV	R4,A
	INC	R2
	CLR	OV
	CJNE	R2,#40H,RR1E
	MOV	R2,#3FH
	SETB	OV
RR1E:	RET

FMUL:	LCALL	MVR0
	MOV	A,@R0
	XRL	A,@R1
	RLC	A
	MOV	PFA,C
	LCALL	MUL0
	LJMP	MOV0
MUL0:	LCALL	MVR1
MUL1:	MOV	A,R3
	ORL	A,R4
	JZ	MUL6
	MOV	A,R6
	ORL	A,R7
	JZ	MUL5
	MOV	A,R7
	MOV	B,R4
	MUL	AB
	MOV	A,B
	XCH	A,R7
	MOV	B,R3
	MUL	AB
	ADD	A,R7
	MOV	R7,A
	CLR	A
	ADDC	A,B
	XCH	A,R4
	MOV	B,R6
	MUL	AB
	ADD	A,R7
	MOV	R7,A
	MOV	A,B
	ADDC	A,R4
	MOV	R4,A
	CLR	A
	RLC	A
	XCH	A,R3
	MOV	B,R6
	MUL	AB
	ADD	A,R4
	MOV	R4,A
	MOV	A,B
	ADDC	A,R3
	MOV	R3,A
	JB	ACC.7,MUL2
	MOV	A,R7
	RLC	A
	MOV	R7,A
	LCALL	RL1
MUL2:	MOV	A,R7
	JNB	ACC.7,MUL3
	INC	R4
	MOV	A,R4
	JNZ	MUL3
	INC	R3
	MOV	A,R3
	JNZ	MUL3
	MOV	R3,#80H
	INC	R2
MUL3:	MOV	A,R2
	ADD	A,R5
MD:	MOV	R2,A
	JB	ACC.7,MUL4
	JNB	ACC.6,MUL6
	MOV	R2,#3FH
	SETB	OV
	RET
MUL4:	JB	ACC.6,MUL6
MUL5:	CLR	A
	MOV	R3,A
	MOV	R4,A
	MOV	R2,#41H
MUL6:	CLR	OV
	RET

FDIV:	INC	R0
	MOV	A,@R0
	INC	R0
	ORL	A,@R0
	DEC	R0
	DEC	R0
	JNZ	DIV1
	MOV	@R0,#41H
	CLR	OV
	RET
DIV1:	INC	R1
	MOV	A,@R1
	INC	R1
	ORL	A,@R1
	DEC	R1
	DEC	R1
	JNZ	DIV2
	SETB	OV
	RET
DIV2:	LCALL	MVR0
	MOV	A,@R0
	XRL	A,@R1
	RLC	A
	MOV	PFA,C
	LCALL	MVR1
	LCALL	DIV3
	LJMP	MOV0
DIV3:	CLR	C
	MOV	A,R4
	SUBB	A,R7
	MOV	A,R3
	SUBB	A,R6
	JC	DIV4
	LCALL	RR1
	SJMP	DIV3
DIV4:	CLR	A
	XCH	A,R0
	PUSH	ACC
	CLR	A
	XCH	A,R1
	PUSH	ACC
	MOV	A,R2
	PUSH	ACC
	MOV	B,#10H
DIV5:	CLR	C
	MOV	A,R1
	RLC	A
	MOV	R1,A
	MOV	A,R0
	RLC	A
	MOV	R0,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	XCH	A,R3
	RLC	A
	XCH	A,R3
	MOV	F0,C
	CLR	C
	SUBB	A,R7
	MOV	R2,A
	MOV	A,R3
	SUBB	A,R6
	ANL	C,/F0
	JC	DIV6
	MOV	R3,A
	MOV	A,R2
	MOV	R4,A
	INC	R1
DIV6:	DJNZ	B,DIV5
	MOV	A,R6
	CLR	C
	RRC	A
	SUBB	A,R3
	CLR	A
	ADDC	A,R1
	MOV	R4,A
	CLR	A
	ADDC	A,R0
	MOV	R3,A
	POP	ACC
	MOV	R2,A
	POP	ACC
	MOV	R1,A
	POP	ACC
	MOV	R0,A
	MOV	A,R2
	CLR	C
	SUBB	A,R5
	LCALL	MD
	LJMP	RLN

	END

⌨️ 快捷键说明

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