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

📄 两个浮点数相乘.asm

📁 8个汇编程序
💻 ASM
字号:
FDIAN1A        EQU        30H  
FDIAN1B        EQU        31H 
FDIAN1C        EQU        32H 
FDIAN2A        EQU        33H 
FDIAN2B        EQU        34H 
FDIAN2C        EQU        35H 
               ORG 0000H
               LJMP 0100H
               ORG 0100H
MAIN:          MOV R0,#FDIAN1A
               MOV A,#05H
               MOV @R0,A
               INC R0
               MOV A,#16H
               MOV @R0,A
               INC R0
               MOV A,#38H
               MOV @R0,A
               INC R0
               MOV A,#7EH
               MOV @R0,A
               INC R0
               MOV A,#12H
               MOV @R0,A
               INC R0
               MOV A,#00H
               MOV @R0,A
               MOV R0,#FDIAN1A
               LCALL BTOF
               MOV R0,#FDIAN2A
               LCALL BTOF
               MOV R1,#FDIAN1A
               LCALL FMUL
               LCALL FTOB
               SJMP $
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
	LJMP	MOV0	
	RET
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
FMUL:	LCALL	MVR0
	MOV	A,@R0
	XRL	A,@R1

RLC	A
	MOV	1FH,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


BTFL:	DB	41H,0ECH,1EH	
	DB	45H,93H,93H	
	DB	48H,0B8H,78H	
	DB	4BH,0E6H,96H	
	DB	4FH,90H,1DH	
	DB	52H,0B4H,25H	
	DB	55H,0E1H,2EH	
	DB	59H,8CH,0BDH	
	DB	5CH,0AFH,0ECH	
	DB	5FH,0DBH,0E7H	
	DB	63H,89H,70H	

DB	66H,0ABH,0CCH	
	DB	69H,0D6H,0C0H	
BFLN:	DB	6DH,86H,38H	
	DB	70H,0A7H,0C6H	
	DB	73H,0D1H,0B7H	
	DB	77H,83H,12H	
	DB	7AH,0A3H,0D7H
	DB	7DH,0CCH,0CDH	
BFL0:	DB	1,80H,00H	
	DB	4,0A0H,00H	
	DB	7,0C8H,00H	
	DB	0AH,0FAH,00H	
	DB	0EH,9CH,40H	
	DB	11H,0C3H,50H	
	DB	14H,0F4H,24H	

    DB	18H,98H,97H	
	DB	1BH,0BEH,0BCH	
	DB	1EH,0EEH,6BH	
	DB	22H,95H,03H	
	DB	25H,0BAH,44H	
	DB	28H,0E8H,0D5H	
	DB	2CH,91H,85H	
	DB	2FH,0B5H,0E6H	
	DB	32H,0E3H,60H	
	DB	36H,8EH,1CH	
	DB	39H,31H,0A3H	
	DB	3CH,0DEH,0BH	
	DB	40H,8AH,0C7H
MOV0:	INC	R0	;将结果传回到[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	
	RET
MVR0:	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
	RET
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	
	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
MVR1:	MOV	A,@R1	 

MOV	C,ACC.7	 
	MOV	1EH,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
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
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

	
	END

⌨️ 快捷键说明

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