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

📄 7.3.3以2为底的浮点指数函数.txt

📁 《MCS-51单片机应用开发实用子程序》配套源代码下载
💻 TXT
字号:
FE2: 
MOV	A,@R0				
MOV	C,ACC.7
MOV	1FH,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
LCALL 	MUL1 				
CLR 	1EH 					
MOV	A,@R0				
MOV	C,ACC.7
MOV	1FH,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
LCALL 	MUL1 				
E20: 
MOV 	A,R3
ORL 	A,R4
JZ 		EXP1 				
MOV 	A,R2
JB 		ACC.7,EXP2			
SETB 	C
SUBB 	A,#6 				
JC 		EXP2
JB 		1FH,EXP0				
MOV 	@R0,#3FH				
INC 		R0
MOV 	@R0,#0FFH
INC 		R0
MOV 	@R0,#0FFH
DEC 	R0
DEC 	R0
SETB 	OV
RET
EXP0: 
MOV 	@R0,#41H				
CLR 	A
INC 		R0
MOV 	@R0,A
INC 		R0
MOV 	@R0,A
DEC 	R0
DEC 	R0
CLR 	OV
RET 
EXP1: 
MOV 	@R0,#1 				
INC 		R0
MOV 	@R0,#80H
INC 		R0
MOV 	@R0,#0
DEC 	R0
DEC 	R0
CLR 	OV
RET 
EXP2: 
MOV 	A,R2 				
MOV 	R5,A
MOV 	A,R3
MOV 	R6,A
MOV 	A,R4
MOV 	R7,A
MOV 	C,1FH
MOV 	1EH,C
;对第一区取整
INT:	
MOV	A,R3				
ORL		A,R4
JNZ		INTA
CLR		1FH
MOV	R2,#41H
RET
INTA:	
MOV	A,R2
JZ		INTB					
JB		ACC.7,INTB			
CLR		C
SUBB	A,#10H				
JC		INTD
RET							
INTB:	
CLR		A	  				
MOV	R4,A
MOV	C,1FH
RRC		A
MOV	R3,A
RL		A
MOV	R2,A
JNZ		INTC
MOV	R2,#41H
INTC:	
RET
INTD:					
CLR		F0
MOV 	A,R3
JZ 		EXP4
EXP3: 
CLR 	C 					
RRC 	A
INC 		R2
CJNE 	R2,#8,EXP3
EXP4: 
MOV 	R3,A
JNB 		1FH,EXP5
CPL 		A 					
INC 		A
EXP5: 
PUSH 	ACC 				
;重新规格化
RLNORM:	
MOV	A,R3					
ORL		A,R4					
JNZ		RLNORM1
MOV	R2,#0C1H				
RET     	
RLNORM1:	
MOV	A,R3
JB		ACC.7,RLNORM2		
CLR		C					
LCALL	RL1
SJMP	RLNORM				
RLNORM2:	
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 
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,1FH
MOV	ACC.7,C
MOV	@R0,A
CLR		ACC.7				
CLR		OV
CJNE	A,#3FH,MV01
SETB	OV					
MV01:	
MOV	A,@R0
CLR		A					
INC		DPTR
JMP		@A+DPTR			
FPLN:	
POP		DPH					
POP		DPL
XCH		A,R0    				
XCH		A,R1
XCH		A,R0
CLR		A				
MOV	R2,A
MOV	R3,A
MOV	R4,A
CLR		1FH
PLN1:						
CLR		A
MOVC	A,@A+DPTR
MOV	C,ACC.7
MOV	1EH,C
MOV	C,ACC.6
MOV	ACC.7,C
MOV	R5,A
INC		DPTR
CLR		A
MOVC	A,@A+DPTR
MOV	R6,A
INC		DPTR
CLR		A
MOVC	A,@A+DPTR
MOV	R7,A
INC		DPTR				
MOV	C,1EH				
RRC		A
XRL		A,23H
RLC		A
MOV	F0,C				
AS1:	
MOV	A,R6					
ORL		A,R7
JZ		MOV0			
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,1EH
MOV	1FH,C
CLR		A
MOVC	A,@A+DPTR
CJNE	A,#40H,PLN2
XCH		A,R0
XCH		A,R1
XCH		A,R0
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,1FH
MOV	ACC.7,C
MOV	@R0,A
CLR		ACC.7			
CLR		OV
CJNE	A,#3FH,MV01
SETB	OV					
MV01:	
MOV	A,@R0
CLR		A					
INC		DPTR
JMP		@A+DPTR			
PLN2:	
MOV	A,@R1				
XRL		A,23H
RLC		A
MOV	1FH,C				 
LCALL	MUL0
SJMP	PLN1
FLOG:	
MOV	A,@R0				
MOV	C,ACC.7
MOV	1FH,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
JB 		1FH,LNOV			
MOV 	A,R3
ORL 	A,R4
JNZ 		LN0
LNOV: 
SETB 	OV
JNB		OV,LOG
RET
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 
DB 77H,0B1H,0C9H				
DB 7AH,0A1H,68H				
DB 7CH,0E3H,4FH				
DB 7EH,0F5H,0E7H				
DB 0,0B1H,72H					
DB 1,80H,0 				
DB 40H 						
POP 		ACC 				
ADD 	A,R2 			
MOV 	R2,A
CLR 	1FH 					
;将幂传回[R0]中
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,1FH
MOV	ACC.7,C
MOV	@R0,A
CLR		ACC.7				
CLR		OV
CJNE	A,#3FH,MV01
SETB	OV					
MV01:	
MOV	A,@R0
CLR		A					
INC		DPTR
JMP		@A+DPTR			

⌨️ 快捷键说明

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