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

📄 fpsub4.asm

📁 MCS96常用子程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	ADDC   22H,0
FIT41:	CLRC
	RET
FIT42:	CLR    20H
	CLR    22H
	CLRC
	RET
FIT43:	LD     20H,#0FFFFH
	LD     22H,#7FFFH
	JBC    26H,7,FIT44
	NOT    22H
	NEG    20H
	ADDC   22H,0
FIT44:	SETC
	RET
FSQR4:  LD     20H,[1AH]
        LD     22H,2[1AH]
        JBC    23H,7,FSQ41
        CLRC
        RET
FSQ41:  CMPB   20H,0
        JNE    FSQ42
        ST     20H,[1EH]
        ST     22H,2[1EH]
        SETC
        RET
FSQ42:  SUB    SP,#4
        LD     1CH,SP
FSQ43:  ST     20H,[1CH]
        ST     22H,2[1CH]
        LCALL  FDIV4
        PUSH   1AH
        LD     1AH,1EH
        LCALL  FADD4
        POP    1AH
        DECB   20H
        STB    20H,[1EH]
        CMPB   20H,[1CH]
        JNE    FSQ43
	ANDB   27H,#7FH
        SUB    24H,20H
        SUBC   26H,22H
        JC     FSQ44
        NOT    26H
        NEG    24H
        ADDC   26H,0
FSQ44:  SUB    24H,#3FFH
        SUBC   26H,0
        JC     FSQ43
        ADD    SP,#4
        RET
FEXP4:  PUSH   #38AAH
        PUSH   #3B80H
        LD     1CH,SP
        LCALL  FMUL4
	ADD    SP,#4
        JBS    20H,7,FEX41
        CLR    28H
        PUSH   28H
        SJMP   FEX44
FEX41:  CMPB   20H,#86H
        JNC    FEX42
        CLRC
        RET
FEX42:  ORB    23H,#80H
        SUBB   28H,20H,#87H
        NEGB   28H
        CLRB   20H
        SHRL   20H,28H
        JBC    2DH,7,FEX43
        NEGB   23H
FEX43:  PUSH   22H
        SHLL   20H,#8
        NORML  20H,28H
        LDB    20H,#7FH
        SUBB   20H,28H
        ANDB   23H,#7FH
        ORB    23H,2DH
        ST     20H,[1EH]
        ST     22H,2[1EH]
FEX44:  PUSH   1AH
        LD     1AH,1EH
        LCALL  FPLN4
        DB     70H,0ADH,9AH,5		;1.59268622E-5
        DB     73H,8FH,5BH,24H		;1.56743669E-4
        DB     76H,0D2H,0A6H,2EH	;1.33248629E-3
        DB     79H,2BH,8EH,1DH		;9.61641484E-3
        DB     7BH,0A0H,58H,63H		;0.0555044428
        DB     7DH,6,0FEH,75H		;0.240226833
        DB     7FH,17H,72H,31H		;0.693147144
        DB     7FH,0FFH,0FFH,7FH	;0.99999999
        DB     0FFH
        POP    1AH
        LD     20H,[1EH]
        POP    22H
        ADDB   20H,23H
        ST     20H,[1EH]
        SETC
        RET
FEXD4:	LD     24H,#8E81H	;ln 10
	ST     24H,[1EH]
	LD     26H,#135DH
	ST     26H,2[1EH]
	LD     1CH,1EH
	LCALL  FMUL4
	PUSH   1AH
	LD     1AH,1EH
	LCALL  FEXP4
	POP    1AH
	RET
FLNX4:  LD     20H,[1AH]
        LD     22H,2[1AH]
        JBS    23H,7,FLN4X
        CMPB   20H,0
        JNE    FLN40
FLN4X:  CLRC
        RET
FLN40:  SUBB   20H,#80H
        PUSH   1AH
        PUSH   20H
        CLRB   20H
        SHLL   20H,#1
        LD     1AH,1EH
        NORML  20H,28H
        JNE    FLN42
        ST     20H,[1EH]
        ST     22H,2[1EH]
        SJMP   FLN43
FLN42:  LDB    20H,#7FH
        SUBB   20H,28H
        ANDB   23H,#7FH
        ST     20H,[1EH]
        ST     22H,2[1EH]
        LCALL  FPLN4
        DB     78H,0E5H,7DH,0C4H	;-5.99645292E-3
        DB     7BH,0FCH,2FH,0CH		;0.0342254483
        DB     7CH,0F1H,0DDH,0BCH	;-0.0922201925
        DB     7DH,4AH,0E0H,28H		;0.164918088
        DB     7DH,1CH,1EH,0F5H		;-0.239372664
        DB     7EH,0B8H,0AFH,29H	;0.331418744
        DB     7EH,44H,0E8H,0FFH	;-0.499818909
        DB     7FH,8BH,0FFH,7FH		;0.999993047
        DB     67H,0C3H,9CH,77H		;3.53E-8
        DB     0FFH			;END
FLN43:  POP    20H
        LDB    28H,#80H
        JBC    20H,7,FLN41
        NEGB   20H
        CLRB   28H
FLN41:  LDB    21H,20H
        CLRB   20H
        MULU   24H,20H,#17F8H
        MULU   20H,#0B172H
        ADD    20H,26H
        ADDC   22H,0
        NORML  20H,29H
        JE     FLN44
        XORB   23H,28H
        LDB    20H,#87H
        SUBB   20H,29H
FLN44:  SUB    SP,#4
        LD     1CH,SP
        ST     20H,[1CH]
        ST     22H,2[1CH]
        LCALL  FADD4
        ADD    SP,#4
        POP    1AH
        SETC
        RET
FLOG4:	LCALL  FLNX4
	JNC    FLG41
	PUSH   1AH
	LD     1AH,1EH
	PUSH   #5E5BH
	PUSH   #0D97EH		;1/ln10
	LD     1CH,SP
	LCALL  FMUL4
	ADD    SP,#4
	POP    1AH
FLG41:	RET
FBTD4:  LD     20H,[1AH]
        LD     22H,2[1AH]
        ANDB   29H,23H,#80H
        LDB    28H,20H
        CLRB   20H
        ORB    23H,#80H
        CMPB   28H,0
        JNE    FBT14
        STB    28H,[1EH]
        STB    28H,1[1EH]
        STB    28H,2[1EH]
        STB    28H,3[1EH]
        STB    28H,4[1EH]
        STB    28H,5[1EH]
        STB    28H,6[1EH]
        STB    28H,7[1EH]
        RET
FBT14:  CLRB   2AH
FBT24:  CMPB   28H,#83H
        JE     FBT64
        JC     FBT74
FBT34:  CMPB   28H,#80H
        JE     FBT84
        JNC    FBT94
FBT44:  SUBB   28H,#87H
        NEGB   28H
        SHRL   20H,28H
        ANDB   2AH,#7FH
        ORB    2AH,29H
        STB    2AH,[1EH]+
        STB    23H,[1EH]+
        LDB    28H,#6
FBT54:  MULUB  24H,22H,#10
        MULU   20H,#10
        ADD    22H,24H
        STB    23H,[1EH]+
        DJNZ   28H,FBT54
        SUB    1EH,#8
        RET
FBT64:  CMP    22H,#0A000H
        JNC    FBT34
FBT74:  MULU   24H,20H,#0CCCCH
        MULU   20H,22H,#0CCCCH
        ADD    24H,20H
        ADDC   26H,22H
        ADDC   22H,0
        ADD    20H,26H
        ADDC   22H,0
        NORML  20H,2BH
        SUBB   28H,2BH
        SUBB   28H,#3
        INCB   2AH
        SJMP   FBT24
FBT84:  CMP    22H,#8000H
        JC     FBT44
FBT94:  MULU   24H,20H,#0A000H
        MULU   20H,22H,#0A000H
        ADD    20H,26H
        ADDC   22H,0
        NORML  20H,2BH
        SUBB   28H,2BH
        ADDB   28H,#4
        DECB   2AH
        SJMP   FBT34
FSIN4:  PUSH   #490FH		;3.1415926
        PUSH   #0DB81H
        LD     1CH,SP
        LD     20H,[1AH]
        LD     22H,2[1AH]
        ANDB   23H,#7FH
	ORB    1AH,#1		;1 -> B
        ST     20H,[1EH]
        ST     22H,2[1EH]
        PUSH   1AH
        LD     1AH,1EH
FSI41:  LD     20H,[SP]		;/B -> B
	XORB   20H,#1
	ST     20H,[SP]
	LCALL  FSUB4
        JGE    FSI41
        LD     20H,#0DB80H
        LD     22H,#490FH
        ST     20H,[1CH]
        ST     22H,2[1CH]
        LCALL  FADD4
        JLT    FSI42
        LD     22H,2[1EH]
        XORB   23H,#80H
        ST     22H,2[1EH]
FSI42:  LCALL  FADD4
        LCALL  FPLN4
        DB     73H,87H,0F5H,90H		;-1.3824376E-4
        DB     73H,6CH,0F4H,0D1H	;-2.00228479E-4
        DB     79H,79H,55H,0DH		;8.62633548E-3
        DB     73H,85H,8AH,0EBH		;-2.246295E-4
        DB     7DH,0DAH,92H,0AAH	;-0.166575814
        DB     70H,0A8H,0D9H,94H	;-1.77443298E-5
        DB     80H,0BH,0,0		;1.00000136
        DB     66H,0D4H,0FDH,0C2H	;-2.27E-8
        DB     0FFH			;END
        POP    20H
	AND    1AH,20H,#0FFFEH
	SHLB   20H,#7
	XORB   20H,3[1AH]
        ANDB   20H,#80H
        ORB    20H,3[1EH]
        STB    20H,3[1EH]
        ADD    SP,#4
        RET
FCOS4:  PUSH   #490FH		;3.1415926
        PUSH   #0DB81H
        LD     1CH,SP
        LD     20H,[1AH]
        LD     22H,2[1AH]
        ANDB   23H,#7FH
        ST     20H,[1EH]
        ST     22H,2[1EH]
	ORB    1AH,#1
        PUSH   1AH
        LD     1AH,1EH
FCS41:  LD     20H,[SP]		;/B -> B
	XORB   20H,#1
	ST     20H,[SP]
	LCALL  FSUB4
        JGE    FCS41
        LD     20H,#0DB80H
        LD     22H,#490FH
        ST     20H,[1CH]
        ST     22H,2[1CH]
        LCALL  FADD4
        JLT    FCS42
	LD     20H,[SP]		;/B -> B
	XORB   20H,#1
	ST     20H,[SP]
        LD     22H,2[1EH]
        XORB   23H,#80H
        ST     22H,2[1EH]
FCS42:  LCALL  FADD4
        LCALL  FPLN4
	DB     73H,66H,65H,15H		;1.42475215E-4
	DB     76H,79H,89H,0E4H		;-1.74359891E-3
	DB     74H,67H,27H,79H		;4.7522339E-4
	DB     7BH,78H,2FH,29H		;4.13050368E-2
	DB     73H,0BH,6DH,21H		;1.53947775E-4
	DB     7FH,38H,2,80H		;-0.500033863
	DB     6DH,0C1H,0CDH,50H	;3.11141801E-6
	DB     80H,0,0,0		;1
        DB     0FFH			;END
        POP    20H
	AND    1AH,20H,#0FFFEH
	SHLB   20H,#7
	XORB   20H,3[1AH]
        ANDB   20H,#80H
        ORB    20H,3[1EH]
        STB    20H,3[1EH]
        ADD    SP,#4
        RET
FTAN4:	PUSH   2[1AH]
	PUSH   [1AH]
	LD     1CH,SP
	PUSH   1EH
	LD     1EH,1CH
	LCALL  FCOS4
	POP    1EH
	LCALL  FSIN4
	LD     1CH,SP
	PUSH   1AH
	LD     1AH,1EH
	LCALL  FDIV4
	POP    1AH
	ADD    SP,#4
	RET
FDTB4:	CLR    30H
	ST     0,[1EH]
	ST     0,2[1EH]
	LDB    20H,[1AH]+
	CMPB   20H,#2BH;	+
	JE     FDTB41
	CMPB   20H,#2DH;	-
	JNE    FDTB42
	ORB    31H,#80H
FDTB41:	LDB    20H,[1AH]+
FDTB42:	CMPB   20H,#30H
	JNC    FDTB46
	CMPB   20H,#3AH
	JC     FDTB46
FDTB43:	SUBB   20H,#30H
	PUSH   1AH
	PUSH   20H
	LD     1AH,1EH
	LD     32H,#83H;	10
	LD     34H,#2000H
	LD     1CH,#32H
	LCALL  FMUL4
	LD     1EH,1CH
	POP    20H
	EXTB   20H
	CLR    22H
	LCALL  INTF4
	LD     1EH,1AH
	LCALL  FADD4
	JBC    31H,6,FDTB44
	INCB   30H
FDTB44:	POP    1AH
FDTB45:	LDB    20H,[1AH]+
	CMPB   20H,#30H
	JNC    FDTB46
	CMPB   20H,#3AH
	JNC    FDTB43
FDTB46:	JBS    31H,6,FDTB47
	CMPB   20H,#2EH;	.
	JNE    FDTB47
	ORB    31H,#40H
	SJMP   FDTB45
FDTB47:	CMPB   20H,#0DH
	JNE    FDTB4A
FDTB4B:	JBC    31H,6,FDTB49
	PUSH   1AH
FDTB48:	LD     32H,#0CD7CH;	0.1
	LD     34H,#4CCCH
	LD     1AH,1EH
	LD     1CH,#32H
	LCALL  FMUL4
	DJNZ   30H,FDTB48
	POP    1AH
FDTB49:	ANDB   20H,31H,#80H
	ORB    20H,3[1EH]
	STB    20H,3[1EH]
	RET
FDTB4A:	CMPB   20H,#2CH;	,
	JE     FDTB4B
	ORB    31H,#20H
	SJMP   FDTB4B
FLBD4:	PUSH   #4CCCH		;0.1
	PUSH   #0CD7CH
	LD     1CH,SP
	PUSH   1EH
	LD     1EH,1AH
	LCALL  FMUL4
	POP    1EH
	ADD    SP,#4
	PUSH   #6666H		;0.9
	PUSH   #667FH
	PUSH   1AH
	LD     1AH,1EH
	LCALL  FMUL4
	POP    1AH
	LD     1CH,1EH
	ADD    SP,#4
	LCALL  FADD4
	RET

⌨️ 快捷键说明

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