📄 spline.lis
字号:
013E ; * y 新增点的y坐标值
013E ; * points 曲线点缓冲区
013E ; * PointCount 缓冲区的当前指针
013E ; * 出口参数:无
013E ; * 说明:
013E ; ****************************************************************************/
013E ; void CURVE_GetCurve(CURVE *cl, float x, float y, PointXY points[], int *PointCount)
013E ; { int X, Y;
013E .dbline 104
013E ; float t, f, g, h;
013E ; int i;
013E ;
013E ; if(cl->Ndiv==0) cl->Ndiv = 1;
013E F301 movw R30,R6
0140 208C ldd R2,z+24
0142 318C ldd R3,z+25
0144 2220 tst R2
0146 39F4 brne L20
0148 3320 tst R3
014A 29F4 brne L20
014C X1:
014C .dbline 104
014C 81E0 ldi R24,1
014E 90E0 ldi R25,0
0150 F301 movw R30,R6
0152 918F std z+25,R25
0154 808F std z+24,R24
0156 L20:
0156 .dbline 107
0156 ;
0156 ; /* 新增一个点到结构 */
0156 ; X = (int)x;
0156 FE01 movw R30,R28
0158 068D ldd R16,z+30
015A 178D ldd R17,z+31
015C 20A1 ldd R18,z+32
015E 31A1 ldd R19,z+33
0160 0E940000 xcall fp2int
0164 6801 movw R12,R16
0166 .dbline 108
0166 ; Y = (int)y;
0166 FE01 movw R30,R28
0168 02A1 ldd R16,z+34
016A 13A1 ldd R17,z+35
016C 24A1 ldd R18,z+36
016E 35A1 ldd R19,z+37
0170 0E940000 xcall fp2int
0174 5801 movw R10,R16
0176 .dbline 109
0176 ; points[*PointCount].x = X;
0176 FA01 movw R30,R20
0178 2081 ldd R18,z+0
017A 3181 ldd R19,z+1
017C 04E0 ldi R16,4
017E 10E0 ldi R17,0
0180 0E940000 xcall empy16s
0184 F801 movw R30,R16
0186 E60F add R30,R22
0188 F71F adc R31,R23
018A D182 std z+1,R13
018C C082 std z+0,R12
018E .dbline 110
018E ; points[*PointCount].y = Y;
018E FA01 movw R30,R20
0190 2081 ldd R18,z+0
0192 3181 ldd R19,z+1
0194 04E0 ldi R16,4
0196 10E0 ldi R17,0
0198 0E940000 xcall empy16s
019C F801 movw R30,R16
019E E60F add R30,R22
01A0 F71F adc R31,R23
01A2 B382 std z+3,R11
01A4 A282 std z+2,R10
01A6 .dbline 111
01A6 ; (*PointCount)++;
01A6 FA01 movw R30,R20
01A8 8081 ldd R24,z+0
01AA 9181 ldd R25,z+1
01AC 0196 adiw R24,1
01AE 9183 std z+1,R25
01B0 8083 std z+0,R24
01B2 .dbline 114
01B2 ;
01B2 ; /* 变换出ndiv个点 */
01B2 ; for(i=1; i<=cl->Ndiv; i++)
01B2 81E0 ldi R24,1
01B4 90E0 ldi R25,0
01B6 7C01 movw R14,R24
01B8 80C1 xjmp L25
01BA L22:
01BA .dbline 115
01BA .dbline 115
01BA 00E0 ldi R16,<L26
01BC 10E0 ldi R17,>L26
01BE 0E940000 xcall lpm32
01C2 3A93 st -y,R19
01C4 2A93 st -y,R18
01C6 1A93 st -y,R17
01C8 0A93 st -y,R16
01CA F301 movw R30,R6
01CC 008D ldd R16,z+24
01CE 118D ldd R17,z+25
01D0 0E940000 xcall int2fp
01D4 3A93 st -y,R19
01D6 2A93 st -y,R18
01D8 1A93 st -y,R17
01DA 0A93 st -y,R16
01DC 0E940000 xcall div32fs
01E0 8701 movw R16,R14
01E2 0E940000 xcall int2fp
01E6 3A93 st -y,R19
01E8 2A93 st -y,R18
01EA 1A93 st -y,R17
01EC 0A93 st -y,R16
01EE 0E940000 xcall empy32f
01F2 FE01 movw R30,R28
01F4 0083 std z+0,R16
01F6 1183 std z+1,R17
01F8 2283 std z+2,R18
01FA 3383 std z+3,R19
01FC .dbline 116
01FC FE01 movw R30,R28
01FE 2080 ldd R2,z+0
0200 3180 ldd R3,z+1
0202 4280 ldd R4,z+2
0204 5380 ldd R5,z+3
0206 5A92 st -y,R5
0208 4A92 st -y,R4
020A 3A92 st -y,R3
020C 2A92 st -y,R2
020E FE01 movw R30,R28
0210 ; stack offset 4
0210 2480 ldd R2,z+4
0212 3580 ldd R3,z+5
0214 4680 ldd R4,z+6
0216 5780 ldd R5,z+7
0218 5A92 st -y,R5
021A 4A92 st -y,R4
021C 3A92 st -y,R3
021E 2A92 st -y,R2
0220 0E940000 xcall empy32fs
0224 00E0 ldi R16,<L27
0226 10E0 ldi R17,>L27
0228 0E940000 xcall lpm32
022C 3A93 st -y,R19
022E 2A93 st -y,R18
0230 1A93 st -y,R17
0232 0A93 st -y,R16
0234 00E0 ldi R16,<L28
0236 10E0 ldi R17,>L28
0238 0E940000 xcall lpm32
023C 3A93 st -y,R19
023E 2A93 st -y,R18
0240 1A93 st -y,R17
0242 0A93 st -y,R16
0244 FE01 movw R30,R28
0246 ; stack offset 12
0246 2484 ldd R2,z+12
0248 3584 ldd R3,z+13
024A 4684 ldd R4,z+14
024C 5784 ldd R5,z+15
024E 5A92 st -y,R5
0250 4A92 st -y,R4
0252 3A92 st -y,R3
0254 2A92 st -y,R2
0256 0E940000 xcall empy32fs
025A 0E940000 xcall sub32fs
025E 0E940000 xcall empy32f
0262 FE01 movw R30,R28
0264 0483 std z+4,R16
0266 1583 std z+5,R17
0268 2683 std z+6,R18
026A 3783 std z+7,R19
026C .dbline 117
026C FE01 movw R30,R28
026E 2080 ldd R2,z+0
0270 3180 ldd R3,z+1
0272 4280 ldd R4,z+2
0274 5380 ldd R5,z+3
0276 5A92 st -y,R5
0278 4A92 st -y,R4
027A 3A92 st -y,R3
027C 2A92 st -y,R2
027E 00E0 ldi R16,<L26
0280 10E0 ldi R17,>L26
0282 0E940000 xcall lpm32
0286 3A93 st -y,R19
0288 2A93 st -y,R18
028A 1A93 st -y,R17
028C 0A93 st -y,R16
028E 0E940000 xcall sub32f
0292 FE01 movw R30,R28
0294 008B std z+16,R16
0296 118B std z+17,R17
0298 228B std z+18,R18
029A 338B std z+19,R19
029C FE01 movw R30,R28
029E 2080 ldd R2,z+0
02A0 3180 ldd R3,z+1
02A2 4280 ldd R4,z+2
02A4 5380 ldd R5,z+3
02A6 5A92 st -y,R5
02A8 4A92 st -y,R4
02AA 3A92 st -y,R3
02AC 2A92 st -y,R2
02AE FE01 movw R30,R28
02B0 ; stack offset 4
02B0 2488 ldd R2,z+20
02B2 3588 ldd R3,z+21
02B4 4688 ldd R4,z+22
02B6 5788 ldd R5,z+23
02B8 5A92 st -y,R5
02BA 4A92 st -y,R4
02BC 3A92 st -y,R3
02BE 2A92 st -y,R2
02C0 0E940000 xcall empy32fs
02C4 FE01 movw R30,R28
02C6 ; stack offset 4
02C6 2488 ldd R2,z+20
02C8 3588 ldd R3,z+21
02CA 4688 ldd R4,z+22
02CC 5788 ldd R5,z+23
02CE 5A92 st -y,R5
02D0 4A92 st -y,R4
02D2 3A92 st -y,R3
02D4 2A92 st -y,R2
02D6 0E940000 xcall empy32f
02DA FE01 movw R30,R28
02DC 0087 std z+8,R16
02DE 1187 std z+9,R17
02E0 2287 std z+10,R18
02E2 3387 std z+11,R19
02E4 .dbline 118
02E4 FE01 movw R30,R28
02E6 2080 ldd R2,z+0
02E8 3180 ldd R3,z+1
02EA 4280 ldd R4,z+2
02EC 5380 ldd R5,z+3
02EE 5A92 st -y,R5
02F0 4A92 st -y,R4
02F2 3A92 st -y,R3
02F4 2A92 st -y,R2
02F6 FE01 movw R30,R28
02F8 ; stack offset 4
02F8 2480 ldd R2,z+4
02FA 3580 ldd R3,z+5
02FC 4680 ldd R4,z+6
02FE 5780 ldd R5,z+7
0300 5A92 st -y,R5
0302 4A92 st -y,R4
0304 3A92 st -y,R3
0306 2A92 st -y,R2
0308 0E940000 xcall empy32fs
030C FE01 movw R30,R28
030E ; stack offset 4
030E 2480 ldd R2,z+4
0310 3580 ldd R3,z+5
0312 4680 ldd R4,z+6
0314 5780 ldd R5,z+7
0316 5A92 st -y,R5
0318 4A92 st -y,R4
031A 3A92 st -y,R3
031C 2A92 st -y,R2
031E 00E0 ldi R16,<L26
0320 10E0 ldi R17,>L26
0322 0E940000 xcall lpm32
0326 3A93 st -y,R19
0328 2A93 st -y,R18
032A 1A93 st -y,R17
032C 0A93 st -y,R16
032E 0E940000 xcall sub32fs
0332 0E940000 xcall empy32f
0336 FE01 movw R30,R28
0338 0487 std z+12,R16
033A 1587 std z+13,R17
033C 2687 std z+14,R18
033E 3787 std z+15,R19
0340 .dbline 120
0340 FE01 movw R30,R28
0342 268C ldd R2,z+30
0344 378C ldd R3,z+31
0346 40A0 ldd R4,z+32
0348 51A0 ldd R5,z+33
034A 5A92 st -y,R5
034C 4A92 st -y,R4
034E 3A92 st -y,R3
0350 2A92 st -y,R2
0352 F301 movw R30,R6
0354 2080 ldd R2,z+0
0356 3180 ldd R3,z+1
0358 4280 ldd R4,z+2
035A 5380 ldd R5,z+3
035C 5A92 st -y,R5
035E 4A92 st -y,R4
0360 3A92 st -y,R3
0362 2A92 st -y,R2
0364 FE01 movw R30,R28
0366 ; stack offset 8
0366 2484 ldd R2,z+12
0368 3584 ldd R3,z+13
036A 4684 ldd R4,z+14
036C 5784 ldd R5,z+15
036E 5A92 st -y,R5
0370 4A92 st -y,R4
0372 3A92 st -y,R3
0374 2A92 st -y,R2
0376 0E940000 xcall empy32fs
037A 0E940000 xcall add32fs
037E F301 movw R30,R6
0380 2084 ldd R2,z+8
0382 3184 ldd R3,z+9
0384 4284 ldd R4,z+10
0386 5384 ldd R5,z+11
0388 5A92 st -y,R5
038A 4A92 st -y,R4
038C 3A92 st -y,R3
038E 2A92 st -y,R2
0390 FE01 movw R30,R28
0392 ; stack offset 8
0392 2088 ldd R2,z+16
0394 3188 ldd R3,z+17
0396 4288 ldd R4,z+18
0398 5388 ldd R5,z+19
039A 5A92 st -y,R5
039C 4A92 st -y,R4
039E 3A92 st -y,R3
03A0 2A92 st -y,R2
03A2 0E940000 xcall empy32fs
03A6 0E940000 xcall add32fs
03AA F301 movw R30,R6
03AC 2088 ldd R2,z+16
03AE 3188 ldd R3,z+17
03B0 4288 ldd R4,z+18
03B2 5388 ldd R5,z+19
03B4 5A92 st -y,R5
03B6 4A92 st -y,R4
03B8 3A92 st -y,R3
03BA 2A92 st -y,R2
03BC FE01 movw R30,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -