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

📄 mfxbs.asm

📁 用8051汇编编程的定点
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	NAME	SDTSUBMK
;	
SDTSUBMK_CODE	SEGMENT	CODE
;应用子程序
PUBLIC	FADD,FSUB,FMUL,FDIV,FLNX,FWTN,FNTW,WTN,NTW,CLWRAM
PUBLIC	FEXP,PWTN,FTW,FSIN,FATN
PUBLIC	FSQR,FSTR,FPLN,FBTD,INTF,FINT,BLC4,FAD4,FSD4
PUBLIC	NTN,FNTN,ULWJ
RSEG	SDTSUBMK_CODE
FNTN:	MOV	A,@R0
	MOV	@R1,A
	INC	R1
	INC	R0
	MOV	A,@R0
	MOV	@R1,A
	INC	R0
	INC	R1
	MOV	A,@R0
	MOV	@R1,A
	RET
ULWA:	MOV 	A,41H
	ADD 	A,43H
	MOV 	41H,A
	MOV 	A,40H
	ADDC 	A,42H
	MOV 	40H,A
	RET	
ULQF:	MOV	A,40H
	CPL	A
	MOV	40H,A
	MOV	A,41H
	CPL	A
	ADD	A,#1
	MOV	41H,A
	MOV	A,40H
	ADDC	A,#0
	MOV	40H,A
	RET	
ULWJ:MOV A,41H
CLR C
SUBB A,43H
MOV 41H,A
MOV A,40H
SUBB A,42H
MOV 40H,A
	JC	YSCX4
	RET
YSCX4:	MOV	40H,#0
	MOV	41H,#0
;JNC NF12
;RLC A
;JNC NF12
;MOV 42H,40H
;MOV 40H,42H
;MOV 43H,41H
;LCALL ULQB
;MOV 40H,42H
;MOV 41H,43H
;SETB C
;NF12:MOV 42H,40H
;MOV 43H,41H
RET
ULQB:NOP
MOV A,43H
CPL A
ADD A,#1
MOV 43H,A
MOV A,42H
CPL A
ADDC A,#0
MOV 42H,A
RET	
NTN:	MOV	A,@R0
	MOV	@R1,A
	INC	R1
	INC	R0
	MOV	A,R1
	CJNE	A,B,NTN
	RET	
FWTN:	MOVX	A,@DPTR
	MOV	@R0,A
	INC	R0
	INC	DPTR
	MOVX	A,@DPTR
	MOV	@R0,A
	INC	R0
	INC	DPTR
	MOVX	A,@DPTR
	MOV	@R0,A
	RET
FNTW:	MOV	A,@R0
	MOVX	@DPTR,A
	INC	DPTR
	INC	R0
	MOV	A,@R0
	MOVX	@DPTR,A
	INC	DPTR
	INC	R0
	MOV	A,@R0
	MOVX	@DPTR,A
	RET
WTN:	MOVX	A,@DPTR
	MOV	@R0,A
	INC	DPTR
	INC	R0
	MOV	A,R0
	CJNE	A,B,WTN
	RET
NTW:	MOV	A,@R0
	MOVX	@DPTR,A
	INC	DPTR
	INC	R0
	MOV	A,R0
	CJNE	A,B,NTW
	RET
PWTN:	MOV	A,B
	MOVC 	A,@A+DPTR
	MOV 	@R0,A
	INC 	B
	INC 	R0
	MOV 	A,B
	MOVC 	A,@A+DPTR
	MOV 	@R0,A
	INC 	B
	INC 	R0
	MOV 	A,B
	MOVC 	A,@A+DPTR
	MOV 	@R0,A
	INC 	B
	RET
;
FTW:	MOV	A,R4
	MOVX	@DPTR,A
	INC	DPTR
	MOV	A,R2
	MOVX	@DPTR,A
	INC	DPTR
	MOV	A,R3
	MOVX	@DPTR,A
	RET
CLWRAM:	CLR	A
	MOVX	@DPTR,A
	INC	DPTR
	DJNZ	R0,CLWRAM
	RET
DMUL:   MOV   A,R3
	MOV   B,R5
	MUL   AB  
	MOV   R7,B
	MOV   A,R3
	MOV   B,R4
	MUL   AB  
	ADD   A,R7
	MOV   R7,A
	CLR   A   
	ADDC  A,B 
	MOV   R3,A
	MOV   A,R2
	MOV   B,R5
	MUL   AB  
	ADD   A,R7
	MOV   R7,A
	MOV   A,R3
	ADDC  A,B 
	MOV   R3,A
	MOV   0D5H,C
	MOV   A,R2  
	MOV   B,R4  
	MUL   AB    
	ADD   A,R3  
	MOV   R3,A  
	CLR   A     
	ADDC  A,B   
	MOV   C,0D5H
	ADDC  A,#00H
	MOV   R2,A  
	RET         
DDIV:   MOV   A,R1  
	PUSH  ACC   
	MOV   B,#10H
S003:   CLR   C     
	MOV   A,R6  
	RLC   A     
	MOV   R6,A  
	MOV   A,R7  
	RLC   A     
	MOV   R7,A  
	MOV   A,R3  
	RLC   A     
	MOV   R3,A  
	XCH   A,R2  
	RLC   A     
	XCH   A,R2  
	MOV   0D5H,C
	CLR   C     
	SUBB  A,R5  
	MOV   R1,A  
	MOV   A,R2  
	SUBB  A,R4  
	JB    0D5H,S001 
	JC    S002      
S001:   MOV   R2,A      
	MOV   A,R1      
	MOV   R3,A      
	INC   R6        
S002:   DJNZ  B,S003    
	POP   ACC       
	MOV   R1,A      
	MOV   A,R7      
	MOV   R2,A      
	MOV   A,R6      
	MOV   R3,A      
	RET             
FMLD:   MOV   A,@R0     
	MOV   R6,A      
	INC   R0        
	MOV   A,@R0     
	MOV   R2,A      
	INC   R0        
	MOV   A,@R0     
	MOV   R3,A      
	DEC   R0        
	DEC   R0        
	MOV   A,@R1     
	MOV   R7,A      
	INC   R1        
	MOV   A,@R1     
	MOV   R4,A      
	INC   R1        
	MOV   A,@R1     
	MOV   R5,A      
	DEC   R1        
	DEC   R1        
	RET             
FABP:   MOV   A,R6      
	MOV   C,0E7H    
	MOV   38H,C     
	XRL   A,R7      
	JNB   0E7H,S004 
	CPL   3AH       
S004:   MOV   A,R6      
	MOV   C,0E6H    
	MOV   0E7H,C    
	MOV   R6,A      
	MOV   A,R7      
	MOV   C,0E6H    
	MOV   0E7H,C    
	MOV   R7,A      
	CLR   C         
	MOV   A,R6      
	SUBB  A,R7      
	JZ    S005      
	CLR   0D5H      
	CLR   39H       
	JB    0E7H,S006 
	CJNE  R4,#00H,S007
	CJNE  R5,#00H,S007
S005:   JB    3AH,S008    
	MOV   A,R3        
	ADD   A,R5        
	MOV   R3,A        
	MOV   A,R2        
	ADDC  A,R4        
	MOV   R2,A        
	JNC   S009        
	SETB  39H         
	CLR   C           
S012:   CLR   0D5H        
	LCALL FSDT        
S009:   CJNE  R2,#00H,S010
	CJNE  R3,#00H,S010
	MOV   R4,#41H     
	RET               
S010:   MOV   A,R6        
	MOV   C,38H       
	MOV   0E7H,C      
	XCH   A,R4        
	MOV   R6,A        
	RET               
S006:   CJNE  R2,#00H,S011
	CJNE  R3,#00H,S011
	MOV   A,R7        
	MOV   R6,A        
	SJMP  S005        
S007:   CPL   0D5H       
S011:   CLR   C          
	LCALL FSDT       
	SJMP  S004       
S008:   MOV   A,R3       
	CLR   C          
	SUBB  A,R5       
	MOV   R3,A       
	MOV   A,R2       
	SUBB  A,R4       
	MOV   R2,A       
	JNC   S013       
	CLR   A          
	CLR   C          
	SUBB  A,R3       
	MOV   R3,A       
	CLR   A          
	SUBB  A,R2       
	MOV   R2,A       
	CPL   38H        
S013:   SETB  C          
	SJMP  S012       
FADD:   CLR   3AH        
	LCALL FMLD      
	LCALL FABP      
	RET             
FSUB:   SETB  3AH       
	LCALL FMLD      
	LCALL FABP      
	RET             
FMUL:   LCALL FMLD      
	MOV   A,R6      
	XRL   A,R7      
	MOV   C,0E7H    
	MOV   38H,C   
	LCALL DMUL    
	MOV   A,R7    
	MOV   C,0E7H  
	MOV   0D5H,C  
	MOV   A,@R0   
	ADD   A,@R1   
	MOV   R6,A    
	SETB  C       
	LCALL FSDT    
	MOV   A,R6    
	MOV   C,38H   
	MOV   0E7H,C  
	MOV   R4,A    
	RET           
FDIV:   LCALL FMLD    
	MOV   A,R6    
	XRL   A,R7    
	MOV   C,0E7H  
	MOV   38H,C   
	CLR   A       
	MOV   R6,A    
	MOV   R7,A    
	CJNE  R4,#00H,S014 
	CJNE  R5,#00H,S014 
	SETB  C        
	RET            
S014:   MOV   A,R3     
	SUBB  A,R5     
	MOV   A,R2     
	SUBB  A,R4     
	JC    S015     
	CLR   0D5H     
	CLR   39H      
	LCALL FSDT     
	MOV   A,R7     
	RRC   A        
	MOV   R7,A     
	CLR   C        
	SJMP  S014     
S015:   CLR   A        
	XCH   A,R6     
	PUSH  ACC      
	LCALL DDIV     
	POP   ACC      
	ADD   A,@R0    
	CLR   C        
	SUBB  A,@R1    
	MOV   C,38H    
	MOV   0E7H,C   
	MOV   R4,A     
	CLR   C        
;
	MOV	A,R2
	ORL	A,R3
	JNZ	FDIV0
	MOV	R4,#41H
;
FDIV0:	RET 
; 结果回送子程序,把R4R2R3结果送到(R1)指定的地址           
FSTR:   MOV   A,R4     
	MOV   @R1,A    
	INC   R1       
	MOV   A,R2     
	MOV   @R1,A    
	INC   R1       
	MOV   A,R3     
	MOV   @R1,A    
	DEC   R1       
	DEC   R1       
	RET
;开方子程序,把(R0)指定的数开方后送到(R1)指定的单元            
FSQR:   MOV   A,@R0    
	JB    0E7H,S016
	MOV   @R1,A    
	INC   R0       
	INC   R1       
	MOV   A,@R0    
	MOV   @R1,A    
	INC   R0       
	INC   R1       
	MOV   A,@R0    
	MOV   @R1,A    
	DEC   R0       
	DEC   R0       
	DEC   R1       
	DEC   R1       
S018:   LCALL FDIV     
	MOV   R6,A     
	MOV   A,@R1    
	MOV   R7,A     
	INC   R1       
	MOV   A,@R1    
	MOV   R4,A     
	INC   R1       
	MOV   A,@R1    
	MOV   R5,A     
	DEC   R1       
	DEC   R1       
	CLR   3AH      
	LCALL FABP     
	CLR   0D5H     
	MOV   A,R4     
	DEC   A        
	CLR   0E7H     
	MOV   R4,A     
	MOV   B,R7     
	CLR   0F7H     
	CJNE  A,B,S017 
	MOV   A,R5     
	SUBB  A,R3     
	ANL   A,#0FCH  
	MOV   R7,A     
	MOV   A,R6     
	SUBB  A,R2     
	JNZ   S017     
	CJNE  R7,#00H,S017 
	SETB  0D5H        
S017:   LCALL FSTR       
	JNB   0D5H,S018  
	RET              
S016:   CLR   0D5H       
	RET       
;二翻十子程序       
FBTD:   MOV   A,@R0      
	MOV   C,0E7H     
	MOV   3CH,C      
	MOV   C,0E6H     
	MOV   0E7H,C     
	MOV   R6,A       
	INC   R0         
	MOV   A,@R0      
	MOV   R2,A       
	INC   R0         
	MOV   A,@R0      
	MOV   R3,A       
	DEC   R0         
	DEC   R0         
	CJNE  R2,#00H,S019
	CJNE  R3,#00H,S019
	CLR   A           
	MOV   @R1,A       
	INC   R1          
	MOV   @R1,A       
	INC   R1          
	MOV   @R1,A     
	INC   R1        
	MOV   @R1,A     
	INC   R1        
	MOV   @R1,A     
	INC   R1        
	MOV   @R1,A     
S031:   DEC   R1        
	DEC   R1        
	DEC   R1        
	DEC   R1        
	DEC   R1        
	RET             
S019:   MOV   @R1,#00H  
	JB    3EH,S020  
	DEC   @R1       
S020:   INC   R1        
	MOV   @R1,#01H  
	JNB   3EH,S021  
	INC   @R1       
	JNB   3FH,S021  
	INC   @R1       
S021:   MOV   A,R6      
	CLR   C         
	SUBB  A,@R1     
	JZ    S022      
	JNB   0E6H,S023 
S032:   DEC   @R1       
	DEC   @R1       
	DEC   @R1       
	DEC   @R1       
S034:   MOV   A,R6      
	CLR   C         
	SUBB  A,@R1     
	JZ    S024      
	JB    0E6H,S025 
S035:   JNB   3EH,S026  
	DEC   R6        
	JNB   3FH,S026  
	DEC   R6        
S026:   CJNE  R6,#00H,S027
	MOV   R6,#05H     
	JNB   3EH,S028    
	MOV   R7,#01H     
	JNB   3FH,S029    
	INC   R7          
S029:   CLR   A           
	CLR   C           
S030:   XCH   A,R3        

⌨️ 快捷键说明

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