📄 ancap.lst
字号:
.................... float y, res, r, y2;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x <-1 || x > 1)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 0.5)
.................... {
.................... y = sqrt((1.0 - y)/2.0);
.................... n += 2;
.................... }
....................
.................... y2=y*y;
....................
.................... res = pas[0]*y2 + pas[1];
.................... res = res*y2 + pas[2];
....................
.................... r = qas[0]*y2 + qas[1];
.................... r = r*y2 + qas[2];
....................
.................... res = y*res/r;
....................
.................... if (n & 2) // |x| > 0.5
.................... res = PI_DIV_BY_TWO - 2.0*res;
.................... if (s)
.................... res = -res;
.................... if (n & 1) // take arccos
.................... res = PI_DIV_BY_TWO - res;
....................
.................... return(res);
.................... }
....................
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float asin(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arcsine value of the value x.
.................... // Date : N/A
.................... //
.................... float asin(float x)
.................... {
.................... float r;
....................
.................... r = ASIN_COS(x, 0);
.................... return(r);
.................... }
....................
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float acos(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arccosine value of the value x.
.................... // Date : N/A
.................... //
.................... float acos(float x)
.................... {
.................... float r;
....................
.................... r = ASIN_COS(x, 1);
.................... return(r);
.................... }
....................
.................... float const pat[4] = {0.17630401, 5.6710795, 22.376096, 19.818457};
.................... float const qat[4] = {1.0000000, 11.368190, 28.982246, 19.818457};
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float atan(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arctangent value of the value x.
.................... // Date : N/A
.................... //
.................... float atan(float x)
.................... {
.................... float y, res, r;
.................... int1 s, flag;
....................
.................... s = 0;
*
084F: BCF 5B.0
.................... flag = 0;
0850: BCF 5B.1
.................... y = x;
0851: MOVF 4E,W
0852: MOVWF 52
0853: MOVF 4D,W
0854: MOVWF 51
0855: MOVF 4C,W
0856: MOVWF 50
0857: MOVF 4B,W
0858: MOVWF 4F
....................
.................... if (x < 0)
0859: MOVF 4E,W
085A: MOVWF 5F
085B: MOVF 4D,W
085C: MOVWF 5E
085D: MOVF 4C,W
085E: MOVWF 5D
085F: MOVF 4B,W
0860: MOVWF 5C
0861: CLRF 63
0862: CLRF 62
0863: CLRF 61
0864: CLRF 60
0865: BCF 0A.3
0866: CALL 497
0867: BSF 0A.3
0868: BTFSS 03.0
0869: GOTO 06D
.................... {
.................... s = 1;
086A: BSF 5B.0
.................... y = -y;
086B: MOVLW 80
086C: XORWF 50,F
.................... }
....................
.................... if (y > 1.0)
086D: CLRF 5F
086E: CLRF 5E
086F: CLRF 5D
0870: MOVLW 7F
0871: MOVWF 5C
0872: MOVF 52,W
0873: MOVWF 63
0874: MOVF 51,W
0875: MOVWF 62
0876: MOVF 50,W
0877: MOVWF 61
0878: MOVF 4F,W
0879: MOVWF 60
087A: BCF 0A.3
087B: CALL 497
087C: BSF 0A.3
087D: BTFSS 03.0
087E: GOTO 098
.................... {
.................... y = 1.0/y;
087F: CLRF 63
0880: CLRF 62
0881: CLRF 61
0882: MOVLW 7F
0883: MOVWF 60
0884: MOVF 52,W
0885: MOVWF 67
0886: MOVF 51,W
0887: MOVWF 66
0888: MOVF 50,W
0889: MOVWF 65
088A: MOVF 4F,W
088B: MOVWF 64
088C: BCF 0A.3
088D: CALL 3CC
088E: BSF 0A.3
088F: MOVF 7A,W
0890: MOVWF 52
0891: MOVF 79,W
0892: MOVWF 51
0893: MOVF 78,W
0894: MOVWF 50
0895: MOVF 77,W
0896: MOVWF 4F
.................... flag = 1;
0897: BSF 5B.1
.................... }
....................
.................... res = pat[0]*y*y + pat[1];
0898: MOVLW 0A
0899: MOVWF 63
089A: MOVLW 89
089B: MOVWF 62
089C: MOVLW 34
089D: MOVWF 61
089E: MOVLW 7C
089F: MOVWF 60
08A0: MOVF 52,W
08A1: MOVWF 67
08A2: MOVF 51,W
08A3: MOVWF 66
08A4: MOVF 50,W
08A5: MOVWF 65
08A6: MOVF 4F,W
08A7: MOVWF 64
08A8: BCF 0A.3
08A9: CALL 356
08AA: BSF 0A.3
08AB: MOVF 77,W
08AC: MOVWF 5C
08AD: MOVF 78,W
08AE: MOVWF 5D
08AF: MOVF 79,W
08B0: MOVWF 5E
08B1: MOVF 7A,W
08B2: MOVWF 5F
08B3: MOVWF 63
08B4: MOVF 79,W
08B5: MOVWF 62
08B6: MOVF 78,W
08B7: MOVWF 61
08B8: MOVF 77,W
08B9: MOVWF 60
08BA: MOVF 52,W
08BB: MOVWF 67
08BC: MOVF 51,W
08BD: MOVWF 66
08BE: MOVF 50,W
08BF: MOVWF 65
08C0: MOVF 4F,W
08C1: MOVWF 64
08C2: BCF 0A.3
08C3: CALL 356
08C4: BSF 0A.3
08C5: MOVF 77,W
08C6: MOVWF 60
08C7: MOVF 78,W
08C8: MOVWF 61
08C9: MOVF 79,W
08CA: MOVWF 62
08CB: MOVF 7A,W
08CC: MOVWF 63
08CD: BCF 03.1
08CE: MOVF 7A,W
08CF: MOVWF 67
08D0: MOVF 79,W
08D1: MOVWF 66
08D2: MOVF 78,W
08D3: MOVWF 65
08D4: MOVF 77,W
08D5: MOVWF 64
08D6: MOVLW 7C
08D7: MOVWF 6B
08D8: MOVLW 79
08D9: MOVWF 6A
08DA: MOVLW 35
08DB: MOVWF 69
08DC: MOVLW 81
08DD: MOVWF 68
08DE: BCF 0A.3
08DF: CALL 4D6
08E0: BSF 0A.3
08E1: MOVF 7A,W
08E2: MOVWF 56
08E3: MOVF 79,W
08E4: MOVWF 55
08E5: MOVF 78,W
08E6: MOVWF 54
08E7: MOVF 77,W
08E8: MOVWF 53
.................... res = res*y*y + pat[2];
08E9: MOVF 56,W
08EA: MOVWF 63
08EB: MOVF 55,W
08EC: MOVWF 62
08ED: MOVF 54,W
08EE: MOVWF 61
08EF: MOVF 53,W
08F0: MOVWF 60
08F1: MOVF 52,W
08F2: MOVWF 67
08F3: MOVF 51,W
08F4: MOVWF 66
08F5: MOVF 50,W
08F6: MOVWF 65
08F7: MOVF 4F,W
08F8: MOVWF 64
08F9: BCF 0A.3
08FA: CALL 356
08FB: BSF 0A.3
08FC: MOVF 77,W
08FD: MOVWF 5C
08FE: MOVF 78,W
08FF: MOVWF 5D
0900: MOVF 79,W
0901: MOVWF 5E
0902: MOVF 7A,W
0903: MOVWF 5F
0904: MOVWF 63
0905: MOVF 79,W
0906: MOVWF 62
0907: MOVF 78,W
0908: MOVWF 61
0909: MOVF 77,W
090A: MOVWF 60
090B: MOVF 52,W
090C: MOVWF 67
090D: MOVF 51,W
090E: MOVWF 66
090F: MOVF 50,W
0910: MOVWF 65
0911: MOVF 4F,W
0912: MOVWF 64
0913: BCF 0A.3
0914: CALL 356
0915: BSF 0A.3
0916: MOVF 77,W
0917: MOVWF 60
0918: MOVF 78,W
0919: MOVWF 61
091A: MOVF 79,W
091B: MOVWF 62
091C: MOVF 7A,W
091D: MOVWF 63
091E: BCF 03.1
091F: MOVF 7A,W
0920: MOVWF 67
0921: MOVF 79,W
0922: MOVWF 66
0923: MOVF 78,W
0924: MOVWF 65
0925: MOVF 77,W
0926: MOVWF 64
0927: MOVLW 3F
0928: MOVWF 6B
0929: MOVLW 02
092A: MOVWF 6A
092B: MOVLW 33
092C: MOVWF 69
092D: MOVLW 83
092E: MOVWF 68
092F: BCF 0A.3
0930: CALL 4D6
0931: BSF 0A.3
0932: MOVF 7A,W
0933: MOVWF 56
0934: MOVF 79,W
0935: MOVWF 55
0936: MOVF 78,W
0937: MOVWF 54
0938: MOVF 77,W
0939: MOVWF 53
.................... res = res*y*y + pat[3];
093A: MOVF 56,W
093B: MOVWF 63
093C: MOVF 55,W
093D: MOVWF 62
093E: MOVF 54,W
093F: MOVWF 61
0940: MOVF 53,W
0941: MOVWF 60
0942: MOVF 52,W
0943: MOVWF 67
0944: MOVF 51,W
0945: MOVWF 66
0946: MOVF 50,W
0947: MOVWF 65
0948: MOVF 4F,W
0949: MOVWF 64
094A: BCF 0A.3
094B: CALL 356
094C: BSF 0A.3
094D: MOVF 77,W
094E: MOVWF 5C
094F: MOVF 78,W
0950: MOVWF 5D
0951: MOVF 79,W
0952: MOVWF 5E
0953: MOVF 7A,W
0954: MOVWF 5F
0955: MOVWF 63
0956: MOVF 79,W
0957: MOVWF 62
0958: MOVF 78,W
0959: MOVWF 61
095A: MOVF 77,W
095B: MOVWF 60
095C: MOVF 52,W
095D: MOVWF 67
095E: MOVF 51,W
095F: MOVWF 66
0960: MOVF 50,W
0961: MOVWF 65
0962: MOVF 4F,W
0963: MOVWF 64
0964: BCF 0A.3
0965: CALL 356
0966: BSF 0A.3
0967: MOVF 77,W
0968: MOVWF 60
0969: MOVF 78,W
096A: MOVWF 61
096B: MOVF 79,W
096C: MOVWF 62
096D: MOVF 7A,W
096E: MOVWF 63
096F: BCF 03.1
0970: MOVF 7A,W
0971: MOVWF 67
0972: MOVF 79,W
0973: MOVWF 66
0974: MOVF 78,W
0975: MOVWF 65
0976: MOVF 77,W
0977: MOVWF 64
0978: MOVLW 33
0979: MOVWF 6B
097A: MOVLW 8C
097B: MOVWF 6A
097C: MOVLW 1E
097D: MOVWF 69
097E: MOVLW 83
097F: MOVWF 68
0980: BCF 0A.3
0981: CALL 4D6
0982: BSF 0A.3
0983: MOVF 7A,W
0984: MOVWF 56
0985: MOVF 79,W
0986: MOVWF 55
0987: MOVF 78,W
0988: MOVWF 54
0989: MOVF 77,W
098A: MOVWF 53
....................
.................... r = qat[0]*y*y + qat[1];
098B: CLRF 63
098C: CLRF 62
098D: CLRF 61
098E: MOVLW 7F
098F: MOVWF 60
0990: MOVF 52,W
0991: MOVWF 67
0992: MOVF 51,W
0993: MOVWF 66
0994: MOVF 50,W
0995: MOVWF 65
0996: MOVF 4F,W
0997: MOVWF 64
0998: BCF 0A.3
0999: CALL 356
099A: BSF 0A.3
099B: MOVF 77,W
099C: MOVWF 5C
099D: MOVF 78,W
099E: MOVWF 5D
099F: MOVF 79,W
09A0: MOVWF 5E
09A1: MOVF 7A,W
09A2: MOVWF 5F
09A3: MOVWF 63
09A4: MOVF 79,W
09A5: MOVWF 62
09A6: MOVF 78,W
09A7: MOVWF 61
09A8: MOVF 77,W
09A9: MOVWF 60
09AA: MOVF 52,W
09AB: MOVWF 67
09AC: MOVF 51,W
09AD: MOVWF 66
09AE: MOVF 50,W
09AF: MOVWF 65
09B0: MOVF 4F,W
09B1: MOVWF 64
09B2: BCF 0A.3
09B3: CALL 356
09B4: BSF 0A.3
09B5: MOVF 77,W
09B6: MOVWF 60
09B7: MOVF 78,W
09B8: MOVWF 61
09B9: MOVF 79,W
09BA: MOVWF 62
09BB: MOVF 7A,W
09BC: MOVWF 63
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -