📄 phatpsp.lst
字号:
09C0: MOVF 77,W
09C1: MOVWF 63
09C2: MOVF 78,W
09C3: MOVWF 64
09C4: MOVF 79,W
09C5: MOVWF 65
09C6: MOVF 7A,W
09C7: MOVWF 66
09C8: BCF 03.1
09C9: MOVF 7A,W
09CA: MOVWF 6A
09CB: MOVF 79,W
09CC: MOVWF 69
09CD: MOVF 78,W
09CE: MOVWF 68
09CF: MOVF 77,W
09D0: MOVWF 67
09D1: MOVLW 1B
09D2: MOVWF 6E
09D3: MOVLW E4
09D4: MOVWF 6D
09D5: MOVLW 35
09D6: MOVWF 6C
09D7: MOVLW 82
09D8: MOVWF 6B
09D9: BCF 0A.3
09DA: CALL 499
09DB: BSF 0A.3
09DC: MOVF 7A,W
09DD: MOVWF 5D
09DE: MOVF 79,W
09DF: MOVWF 5C
09E0: MOVF 78,W
09E1: MOVWF 5B
09E2: MOVF 77,W
09E3: MOVWF 5A
.................... r = r*y*y + qat[2];
09E4: MOVF 5D,W
09E5: MOVWF 66
09E6: MOVF 5C,W
09E7: MOVWF 65
09E8: MOVF 5B,W
09E9: MOVWF 64
09EA: MOVF 5A,W
09EB: MOVWF 63
09EC: MOVF 55,W
09ED: MOVWF 6A
09EE: MOVF 54,W
09EF: MOVWF 69
09F0: MOVF 53,W
09F1: MOVWF 68
09F2: MOVF 52,W
09F3: MOVWF 67
09F4: BCF 0A.3
09F5: CALL 319
09F6: BSF 0A.3
09F7: MOVF 77,W
09F8: MOVWF 5F
09F9: MOVF 78,W
09FA: MOVWF 60
09FB: MOVF 79,W
09FC: MOVWF 61
09FD: MOVF 7A,W
09FE: MOVWF 62
09FF: MOVWF 66
0A00: MOVF 79,W
0A01: MOVWF 65
0A02: MOVF 78,W
0A03: MOVWF 64
0A04: MOVF 77,W
0A05: MOVWF 63
0A06: MOVF 55,W
0A07: MOVWF 6A
0A08: MOVF 54,W
0A09: MOVWF 69
0A0A: MOVF 53,W
0A0B: MOVWF 68
0A0C: MOVF 52,W
0A0D: MOVWF 67
0A0E: BCF 0A.3
0A0F: CALL 319
0A10: BSF 0A.3
0A11: MOVF 77,W
0A12: MOVWF 63
0A13: MOVF 78,W
0A14: MOVWF 64
0A15: MOVF 79,W
0A16: MOVWF 65
0A17: MOVF 7A,W
0A18: MOVWF 66
0A19: BCF 03.1
0A1A: MOVF 7A,W
0A1B: MOVWF 6A
0A1C: MOVF 79,W
0A1D: MOVWF 69
0A1E: MOVF 78,W
0A1F: MOVWF 68
0A20: MOVF 77,W
0A21: MOVWF 67
0A22: MOVLW A4
0A23: MOVWF 6E
0A24: MOVLW DB
0A25: MOVWF 6D
0A26: MOVLW 67
0A27: MOVWF 6C
0A28: MOVLW 83
0A29: MOVWF 6B
0A2A: BCF 0A.3
0A2B: CALL 499
0A2C: BSF 0A.3
0A2D: MOVF 7A,W
0A2E: MOVWF 5D
0A2F: MOVF 79,W
0A30: MOVWF 5C
0A31: MOVF 78,W
0A32: MOVWF 5B
0A33: MOVF 77,W
0A34: MOVWF 5A
.................... r = r*y*y + qat[3];
0A35: MOVF 5D,W
0A36: MOVWF 66
0A37: MOVF 5C,W
0A38: MOVWF 65
0A39: MOVF 5B,W
0A3A: MOVWF 64
0A3B: MOVF 5A,W
0A3C: MOVWF 63
0A3D: MOVF 55,W
0A3E: MOVWF 6A
0A3F: MOVF 54,W
0A40: MOVWF 69
0A41: MOVF 53,W
0A42: MOVWF 68
0A43: MOVF 52,W
0A44: MOVWF 67
0A45: BCF 0A.3
0A46: CALL 319
0A47: BSF 0A.3
0A48: MOVF 77,W
0A49: MOVWF 5F
0A4A: MOVF 78,W
0A4B: MOVWF 60
0A4C: MOVF 79,W
0A4D: MOVWF 61
0A4E: MOVF 7A,W
0A4F: MOVWF 62
0A50: MOVWF 66
0A51: MOVF 79,W
0A52: MOVWF 65
0A53: MOVF 78,W
0A54: MOVWF 64
0A55: MOVF 77,W
0A56: MOVWF 63
0A57: MOVF 55,W
0A58: MOVWF 6A
0A59: MOVF 54,W
0A5A: MOVWF 69
0A5B: MOVF 53,W
0A5C: MOVWF 68
0A5D: MOVF 52,W
0A5E: MOVWF 67
0A5F: BCF 0A.3
0A60: CALL 319
0A61: BSF 0A.3
0A62: MOVF 77,W
0A63: MOVWF 63
0A64: MOVF 78,W
0A65: MOVWF 64
0A66: MOVF 79,W
0A67: MOVWF 65
0A68: MOVF 7A,W
0A69: MOVWF 66
0A6A: BCF 03.1
0A6B: MOVF 7A,W
0A6C: MOVWF 6A
0A6D: MOVF 79,W
0A6E: MOVWF 69
0A6F: MOVF 78,W
0A70: MOVWF 68
0A71: MOVF 77,W
0A72: MOVWF 67
0A73: MOVLW 33
0A74: MOVWF 6E
0A75: MOVLW 8C
0A76: MOVWF 6D
0A77: MOVLW 1E
0A78: MOVWF 6C
0A79: MOVLW 83
0A7A: MOVWF 6B
0A7B: BCF 0A.3
0A7C: CALL 499
0A7D: BSF 0A.3
0A7E: MOVF 7A,W
0A7F: MOVWF 5D
0A80: MOVF 79,W
0A81: MOVWF 5C
0A82: MOVF 78,W
0A83: MOVWF 5B
0A84: MOVF 77,W
0A85: MOVWF 5A
....................
.................... res = y*res/r;
0A86: MOVF 55,W
0A87: MOVWF 66
0A88: MOVF 54,W
0A89: MOVWF 65
0A8A: MOVF 53,W
0A8B: MOVWF 64
0A8C: MOVF 52,W
0A8D: MOVWF 63
0A8E: MOVF 59,W
0A8F: MOVWF 6A
0A90: MOVF 58,W
0A91: MOVWF 69
0A92: MOVF 57,W
0A93: MOVWF 68
0A94: MOVF 56,W
0A95: MOVWF 67
0A96: BCF 0A.3
0A97: CALL 319
0A98: BSF 0A.3
0A99: MOVF 77,W
0A9A: MOVWF 5F
0A9B: MOVF 78,W
0A9C: MOVWF 60
0A9D: MOVF 79,W
0A9E: MOVWF 61
0A9F: MOVF 7A,W
0AA0: MOVWF 62
0AA1: MOVWF 66
0AA2: MOVF 79,W
0AA3: MOVWF 65
0AA4: MOVF 78,W
0AA5: MOVWF 64
0AA6: MOVF 77,W
0AA7: MOVWF 63
0AA8: MOVF 5D,W
0AA9: MOVWF 6A
0AAA: MOVF 5C,W
0AAB: MOVWF 69
0AAC: MOVF 5B,W
0AAD: MOVWF 68
0AAE: MOVF 5A,W
0AAF: MOVWF 67
0AB0: BCF 0A.3
0AB1: CALL 38F
0AB2: BSF 0A.3
0AB3: MOVF 7A,W
0AB4: MOVWF 59
0AB5: MOVF 79,W
0AB6: MOVWF 58
0AB7: MOVF 78,W
0AB8: MOVWF 57
0AB9: MOVF 77,W
0ABA: MOVWF 56
....................
....................
.................... if (flag) // for |x| > 1
0ABB: BTFSS 5E.1
0ABC: GOTO 2D9
.................... res = PI_DIV_BY_TWO - res;
0ABD: BSF 03.1
0ABE: MOVLW DB
0ABF: MOVWF 6A
0AC0: MOVLW 0F
0AC1: MOVWF 69
0AC2: MOVLW 49
0AC3: MOVWF 68
0AC4: MOVLW 7F
0AC5: MOVWF 67
0AC6: MOVF 59,W
0AC7: MOVWF 6E
0AC8: MOVF 58,W
0AC9: MOVWF 6D
0ACA: MOVF 57,W
0ACB: MOVWF 6C
0ACC: MOVF 56,W
0ACD: MOVWF 6B
0ACE: BCF 0A.3
0ACF: CALL 499
0AD0: BSF 0A.3
0AD1: MOVF 7A,W
0AD2: MOVWF 59
0AD3: MOVF 79,W
0AD4: MOVWF 58
0AD5: MOVF 78,W
0AD6: MOVWF 57
0AD7: MOVF 77,W
0AD8: MOVWF 56
.................... if (s)
0AD9: BTFSS 5E.0
0ADA: GOTO 2DD
.................... res = -res;
0ADB: MOVLW 80
0ADC: XORWF 57,F
....................
.................... return(res);
0ADD: MOVF 56,W
0ADE: MOVWF 77
0ADF: MOVF 57,W
0AE0: MOVWF 78
0AE1: MOVF 58,W
0AE2: MOVWF 79
0AE3: MOVF 59,W
0AE4: MOVWF 7A
.................... }
....................
.................... /////////////////////////////////////////////////////////////////////////////
.................... // float atan2(float y, float x)
.................... /////////////////////////////////////////////////////////////////////////////
.................... // Description :computes the principal value of arc tangent of y/x, using the
.................... // signs of both the arguments to determine the quadrant of the return value
.................... // Returns : returns the arc tangent of y/x.
.................... // Date : N/A
.................... //
....................
....................
.................... float atan2(float y,float x)
.................... {
.................... float z;
.................... int1 sign;
.................... int quad;
.................... sign=0;
.................... quad=0; //quadrant
.................... quad=((y<=0.0)?(x<=0.0)?:4):((x<0.0)?:1));
.................... if(y<0.0)
.................... {
.................... sign=1;
.................... y=-y;
.................... }
.................... if(x<0.0)
.................... {
.................... x=-x;
.................... }
.................... if (x==0.0)
.................... {
.................... if(y==0.0)
.................... {
.................... #ifdef _ERRNO
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... }
.................... else
.................... {
.................... if(sign)
.................... {
.................... return (-(PI_DIV_BY_TWO));
.................... }
.................... else
.................... {
.................... return (PI_DIV_BY_TWO);
.................... }
.................... }
.................... }
.................... else
.................... {
.................... z=y/x;
.................... switch(quad)
.................... {
.................... case 1:
.................... {
.................... return atan(z);
.................... break;
.................... }
.................... case 2:
.................... {
.................... // return (atan(z)+PI_DIV_BY_TWO); //2L3122
.................... return (PI-atan(z));
.................... break;
.................... }
.................... case 3:
.................... {
.................... return (atan(z)-PI);
.................... break;
.................... }
.................... case 4:
.................... {
.................... return (-atan(z));
.................... break;
.................... }
.................... }
.................... }
.................... }
....................
.................... //////////////////// Hyperbolic functions ////////////////////
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float cosh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic cosine value of x
.................... // Returns : returns the hyperbolic cosine value of x
.................... // Date : N/A
.................... //
....................
.................... float cosh(float x)
.................... {
.................... return ((exp(x)+exp(-x))/2);
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float sinh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic sine value of x
.................... // Returns : returns the hyperbolic sine value of x
.................... // Date : N/A
.................... //
....................
.................... float sinh(float x)
.................... {
....................
.................... return ((exp(x) - exp(-x))/2);
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float tanh(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : Computes the hyperbolic tangent value of x
.................... // Returns : returns the hyperbolic tangent value of x
.................... // Date : N/A
.................... //
....................
.................... float tanh(float x)
.................... {
.................... return(sinh(x)/cosh(x));
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float frexp(float x, signed int *exp)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : breaks a floating point number into a normalized fraction and an integral
.................... // power of 2. It stores the integer in the signed int object pointed to by exp.
.................... // Returns : returns the value x, such that x is a double with magnitude in the interval
.................... // [1/2,1) or zero, and value equals x times 2 raised to the power *exp.If value is zero,
.................... // both parts of the result are zero.
.................... // Date : N/A
.................... //
....................
....................
....................
.................... #define LOG2 .30102999566398119521
.................... float frexp(float x, signed int *exp)
.................... {
.................... float res;
.................... int1 sign = 0;
.................... if(x == 0.0)
.................... {
.................... *exp=0;
.................... return (0.0);
.................... }
.................... if(x < 0.0)
.................... {
.................... x=-x;
.................... sign=1;
.................... }
.................... if (x > 1.0)
.................... {
.................... *exp=(ceil(log10(x)/LOG2));
.................... res=x/(pow(2, *exp));
.................... if (res == 1)
.................... {
.................... *exp=*exp+1;
.................... res=.5;
.................... }
.................... }
.................... else
.................... {
.................... if(x < 0.5)
.................... {
.................... *exp=-1;
.................... res=x*2;
.................... }
........
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -