📄 phatpspv1.lst
字号:
09CC: MOVWF 62
09CD: MOVF 78,W
09CE: MOVWF 61
09CF: MOVF 77,W
09D0: MOVWF 60
09D1: MOVF 52,W
09D2: MOVWF 67
09D3: MOVF 51,W
09D4: MOVWF 66
09D5: MOVF 50,W
09D6: MOVWF 65
09D7: MOVF 4F,W
09D8: MOVWF 64
09D9: BCF 0A.3
09DA: CALL 4C2
09DB: BSF 0A.3
09DC: MOVF 77,W
09DD: MOVWF 60
09DE: MOVF 78,W
09DF: MOVWF 61
09E0: MOVF 79,W
09E1: MOVWF 62
09E2: MOVF 7A,W
09E3: MOVWF 63
09E4: BCF 03.1
09E5: MOVF 7A,W
09E6: MOVWF 67
09E7: MOVF 79,W
09E8: MOVWF 66
09E9: MOVF 78,W
09EA: MOVWF 65
09EB: MOVF 77,W
09EC: MOVWF 64
09ED: MOVLW 1B
09EE: MOVWF 6B
09EF: MOVLW E4
09F0: MOVWF 6A
09F1: MOVLW 35
09F2: MOVWF 69
09F3: MOVLW 82
09F4: MOVWF 68
09F5: BCF 0A.3
09F6: CALL 380
09F7: BSF 0A.3
09F8: MOVF 7A,W
09F9: MOVWF 5A
09FA: MOVF 79,W
09FB: MOVWF 59
09FC: MOVF 78,W
09FD: MOVWF 58
09FE: MOVF 77,W
09FF: MOVWF 57
.................... r = r*y*y + qat[2];
0A00: MOVF 5A,W
0A01: MOVWF 63
0A02: MOVF 59,W
0A03: MOVWF 62
0A04: MOVF 58,W
0A05: MOVWF 61
0A06: MOVF 57,W
0A07: MOVWF 60
0A08: MOVF 52,W
0A09: MOVWF 67
0A0A: MOVF 51,W
0A0B: MOVWF 66
0A0C: MOVF 50,W
0A0D: MOVWF 65
0A0E: MOVF 4F,W
0A0F: MOVWF 64
0A10: BCF 0A.3
0A11: CALL 4C2
0A12: BSF 0A.3
0A13: MOVF 77,W
0A14: MOVWF 5C
0A15: MOVF 78,W
0A16: MOVWF 5D
0A17: MOVF 79,W
0A18: MOVWF 5E
0A19: MOVF 7A,W
0A1A: MOVWF 5F
0A1B: MOVWF 63
0A1C: MOVF 79,W
0A1D: MOVWF 62
0A1E: MOVF 78,W
0A1F: MOVWF 61
0A20: MOVF 77,W
0A21: MOVWF 60
0A22: MOVF 52,W
0A23: MOVWF 67
0A24: MOVF 51,W
0A25: MOVWF 66
0A26: MOVF 50,W
0A27: MOVWF 65
0A28: MOVF 4F,W
0A29: MOVWF 64
0A2A: BCF 0A.3
0A2B: CALL 4C2
0A2C: BSF 0A.3
0A2D: MOVF 77,W
0A2E: MOVWF 60
0A2F: MOVF 78,W
0A30: MOVWF 61
0A31: MOVF 79,W
0A32: MOVWF 62
0A33: MOVF 7A,W
0A34: MOVWF 63
0A35: BCF 03.1
0A36: MOVF 7A,W
0A37: MOVWF 67
0A38: MOVF 79,W
0A39: MOVWF 66
0A3A: MOVF 78,W
0A3B: MOVWF 65
0A3C: MOVF 77,W
0A3D: MOVWF 64
0A3E: MOVLW A4
0A3F: MOVWF 6B
0A40: MOVLW DB
0A41: MOVWF 6A
0A42: MOVLW 67
0A43: MOVWF 69
0A44: MOVLW 83
0A45: MOVWF 68
0A46: BCF 0A.3
0A47: CALL 380
0A48: BSF 0A.3
0A49: MOVF 7A,W
0A4A: MOVWF 5A
0A4B: MOVF 79,W
0A4C: MOVWF 59
0A4D: MOVF 78,W
0A4E: MOVWF 58
0A4F: MOVF 77,W
0A50: MOVWF 57
.................... r = r*y*y + qat[3];
0A51: MOVF 5A,W
0A52: MOVWF 63
0A53: MOVF 59,W
0A54: MOVWF 62
0A55: MOVF 58,W
0A56: MOVWF 61
0A57: MOVF 57,W
0A58: MOVWF 60
0A59: MOVF 52,W
0A5A: MOVWF 67
0A5B: MOVF 51,W
0A5C: MOVWF 66
0A5D: MOVF 50,W
0A5E: MOVWF 65
0A5F: MOVF 4F,W
0A60: MOVWF 64
0A61: BCF 0A.3
0A62: CALL 4C2
0A63: BSF 0A.3
0A64: MOVF 77,W
0A65: MOVWF 5C
0A66: MOVF 78,W
0A67: MOVWF 5D
0A68: MOVF 79,W
0A69: MOVWF 5E
0A6A: MOVF 7A,W
0A6B: MOVWF 5F
0A6C: MOVWF 63
0A6D: MOVF 79,W
0A6E: MOVWF 62
0A6F: MOVF 78,W
0A70: MOVWF 61
0A71: MOVF 77,W
0A72: MOVWF 60
0A73: MOVF 52,W
0A74: MOVWF 67
0A75: MOVF 51,W
0A76: MOVWF 66
0A77: MOVF 50,W
0A78: MOVWF 65
0A79: MOVF 4F,W
0A7A: MOVWF 64
0A7B: BCF 0A.3
0A7C: CALL 4C2
0A7D: BSF 0A.3
0A7E: MOVF 77,W
0A7F: MOVWF 60
0A80: MOVF 78,W
0A81: MOVWF 61
0A82: MOVF 79,W
0A83: MOVWF 62
0A84: MOVF 7A,W
0A85: MOVWF 63
0A86: BCF 03.1
0A87: MOVF 7A,W
0A88: MOVWF 67
0A89: MOVF 79,W
0A8A: MOVWF 66
0A8B: MOVF 78,W
0A8C: MOVWF 65
0A8D: MOVF 77,W
0A8E: MOVWF 64
0A8F: MOVLW 33
0A90: MOVWF 6B
0A91: MOVLW 8C
0A92: MOVWF 6A
0A93: MOVLW 1E
0A94: MOVWF 69
0A95: MOVLW 83
0A96: MOVWF 68
0A97: BCF 0A.3
0A98: CALL 380
0A99: BSF 0A.3
0A9A: MOVF 7A,W
0A9B: MOVWF 5A
0A9C: MOVF 79,W
0A9D: MOVWF 59
0A9E: MOVF 78,W
0A9F: MOVWF 58
0AA0: MOVF 77,W
0AA1: MOVWF 57
....................
.................... res = y*res/r;
0AA2: MOVF 52,W
0AA3: MOVWF 63
0AA4: MOVF 51,W
0AA5: MOVWF 62
0AA6: MOVF 50,W
0AA7: MOVWF 61
0AA8: MOVF 4F,W
0AA9: MOVWF 60
0AAA: MOVF 56,W
0AAB: MOVWF 67
0AAC: MOVF 55,W
0AAD: MOVWF 66
0AAE: MOVF 54,W
0AAF: MOVWF 65
0AB0: MOVF 53,W
0AB1: MOVWF 64
0AB2: BCF 0A.3
0AB3: CALL 4C2
0AB4: BSF 0A.3
0AB5: MOVF 77,W
0AB6: MOVWF 5C
0AB7: MOVF 78,W
0AB8: MOVWF 5D
0AB9: MOVF 79,W
0ABA: MOVWF 5E
0ABB: MOVF 7A,W
0ABC: MOVWF 5F
0ABD: MOVWF 63
0ABE: MOVF 79,W
0ABF: MOVWF 62
0AC0: MOVF 78,W
0AC1: MOVWF 61
0AC2: MOVF 77,W
0AC3: MOVWF 60
0AC4: MOVF 5A,W
0AC5: MOVWF 67
0AC6: MOVF 59,W
0AC7: MOVWF 66
0AC8: MOVF 58,W
0AC9: MOVWF 65
0ACA: MOVF 57,W
0ACB: MOVWF 64
0ACC: BCF 0A.3
0ACD: CALL 538
0ACE: BSF 0A.3
0ACF: MOVF 7A,W
0AD0: MOVWF 56
0AD1: MOVF 79,W
0AD2: MOVWF 55
0AD3: MOVF 78,W
0AD4: MOVWF 54
0AD5: MOVF 77,W
0AD6: MOVWF 53
....................
....................
.................... if (flag) // for |x| > 1
0AD7: BTFSS 5B.1
0AD8: GOTO 2F5
.................... res = PI_DIV_BY_TWO - res;
0AD9: BSF 03.1
0ADA: MOVLW DB
0ADB: MOVWF 67
0ADC: MOVLW 0F
0ADD: MOVWF 66
0ADE: MOVLW 49
0ADF: MOVWF 65
0AE0: MOVLW 7F
0AE1: MOVWF 64
0AE2: MOVF 56,W
0AE3: MOVWF 6B
0AE4: MOVF 55,W
0AE5: MOVWF 6A
0AE6: MOVF 54,W
0AE7: MOVWF 69
0AE8: MOVF 53,W
0AE9: MOVWF 68
0AEA: BCF 0A.3
0AEB: CALL 380
0AEC: BSF 0A.3
0AED: MOVF 7A,W
0AEE: MOVWF 56
0AEF: MOVF 79,W
0AF0: MOVWF 55
0AF1: MOVF 78,W
0AF2: MOVWF 54
0AF3: MOVF 77,W
0AF4: MOVWF 53
.................... if (s)
0AF5: BTFSS 5B.0
0AF6: GOTO 2F9
.................... res = -res;
0AF7: MOVLW 80
0AF8: XORWF 54,F
....................
.................... return(res);
0AF9: MOVF 53,W
0AFA: MOVWF 77
0AFB: MOVF 54,W
0AFC: MOVWF 78
0AFD: MOVF 55,W
0AFE: MOVWF 79
0AFF: MOVF 56,W
0B00: 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));
....................
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -