1602.lst

来自「10K到5MHz的频率测量」· LST 代码 · 共 1,887 行 · 第 1/4 页

LST
1,887
字号
     289 9250 0080 STS	f+3,R5
     28B 9240 007F STS	f+2,R4
(0096) 	if(hignf)
     28D 9020 0070 LDS	R2,hignf
     28F 2022      TST	R2
     290 F131      BEQ	0x02B7
(0097) 	{
(0098) 		f+=hignf*65536;
     291 2433      CLR	R3
     292 2444      CLR	R4
     293 2455      CLR	R5
     294 E040      LDI	R20,0
     295 E050      LDI	R21,0
     296 E061      LDI	R22,1
     297 E070      LDI	R23,0
     298 925A      ST	R5,-Y
     299 924A      ST	R4,-Y
     29A 923A      ST	R3,-Y
     29B 922A      ST	R2,-Y
     29C 018A      MOVW	R16,R20
     29D 019B      MOVW	R18,R22
     29E 940E 03E4 CALL	empy32s
     2A0 9040 007F LDS	R4,f+2
     2A2 9050 0080 LDS	R5,f+3
     2A4 9020 007D LDS	R2,f
     2A6 9030 007E LDS	R3,f+1
     2A8 0E20      ADD	R2,R16
     2A9 1E31      ADC	R3,R17
     2AA 1E42      ADC	R4,R18
     2AB 1E53      ADC	R5,R19
     2AC 9230 007E STS	f+1,R3
     2AE 9220 007D STS	f,R2
     2B0 9250 0080 STS	f+3,R5
     2B2 9240 007F STS	f+2,R4
(0099) 		hignf=0;
     2B4 2422      CLR	R2
     2B5 9220 0070 STS	hignf,R2
(0100) 	}
(0101) 	FF=(float)f;
     2B7 9120 007F LDS	R18,f+2
     2B9 9130 0080 LDS	R19,f+3
     2BB 9100 007D LDS	R16,f
     2BD 9110 007E LDS	R17,f+1
     2BF 940E 04B1 CALL	ulong2fp
     2C1 9310 0082 STS	FF+1,R17
     2C3 9300 0081 STS	FF,R16
     2C5 9330 0084 STS	FF+3,R19
     2C7 9320 0083 STS	FF+2,R18
(0102) 	for(i=13;i>6;i--)
     2C9 E08D      LDI	R24,0xD
     2CA 9380 0074 STS	i,R24
     2CC C039      RJMP	0x0306
(0103) 	{
(0104) 		WriteNum(2,i,f%10);
     2CD E04A      LDI	R20,0xA
     2CE E050      LDI	R21,0
     2CF E060      LDI	R22,0
     2D0 E070      LDI	R23,0
     2D1 9120 007F LDS	R18,f+2
     2D3 9130 0080 LDS	R19,f+3
     2D5 9100 007D LDS	R16,f
     2D7 9110 007E LDS	R17,f+1
     2D9 937A      ST	R23,-Y
     2DA 936A      ST	R22,-Y
     2DB 935A      ST	R21,-Y
     2DC 934A      ST	R20,-Y
     2DD 940E 037C CALL	mod32u
     2DF 8319      STD	Y+1,R17
     2E0 8308      STD	Y+0,R16
     2E1 9120 0074 LDS	R18,i
     2E3 2733      CLR	R19
     2E4 E002      LDI	R16,2
     2E5 E010      LDI	R17,0
     2E6 DE74      RCALL	_WriteNum
(0105) 		f/=10;
     2E7 E04A      LDI	R20,0xA
     2E8 E050      LDI	R21,0
     2E9 E060      LDI	R22,0
     2EA E070      LDI	R23,0
     2EB 9120 007F LDS	R18,f+2
     2ED 9130 0080 LDS	R19,f+3
     2EF 9100 007D LDS	R16,f
     2F1 9110 007E LDS	R17,f+1
     2F3 937A      ST	R23,-Y
     2F4 936A      ST	R22,-Y
     2F5 935A      ST	R21,-Y
     2F6 934A      ST	R20,-Y
     2F7 940E 037A CALL	div32u
     2F9 9310 007E STS	f+1,R17
     2FB 9300 007D STS	f,R16
     2FD 9330 0080 STS	f+3,R19
     2FF 9320 007F STS	f+2,R18
     301 9180 0074 LDS	R24,i
     303 5081      SUBI	R24,1
     304 9380 0074 STS	i,R24
     306 E086      LDI	R24,6
     307 9020 0074 LDS	R2,i
     309 1582      CP	R24,R2
     30A F210      BCS	0x02CD
(0106) 	}
(0107) 	 TT=1/FF;
     30B E508      LDI	R16,0x58
     30C E010      LDI	R17,0
     30D 940E 0466 CALL	lpm32
     30F E881      LDI	R24,0x81
     310 E090      LDI	R25,0
     311 939A      ST	R25,-Y
     312 938A      ST	R24,-Y
     313 940E 04C6 CALL	fpdiv1
     315 9310 0086 STS	TT+1,R17
     317 9300 0085 STS	TT,R16
     319 9330 0088 STS	TT+3,R19
     31B 9320 0087 STS	TT+2,R18
(0108) 	 T_int=(ulint)(TT*1000000000);
     31D E504      LDI	R16,0x54
     31E E010      LDI	R17,0
     31F 940E 0466 CALL	lpm32
     321 E885      LDI	R24,0x85
     322 E090      LDI	R25,0
     323 939A      ST	R25,-Y
     324 938A      ST	R24,-Y
     325 940E 064E CALL	fpmule1
     327 940E 047A CALL	fpint
     329 9310 0076 STS	T_int+1,R17
     32B 9300 0075 STS	T_int,R16
     32D 9330 0078 STS	T_int+3,R19
     32F 9320 0077 STS	T_int+2,R18
(0109) 	 for(i=14;i>5;i--)
     331 E08E      LDI	R24,0xE
     332 9380 0074 STS	i,R24
     334 C039      RJMP	0x036E
(0110) 	 {
(0111) 		WriteNum(1,i,T_int%10);
     335 E04A      LDI	R20,0xA
     336 E050      LDI	R21,0
     337 E060      LDI	R22,0
     338 E070      LDI	R23,0
     339 9120 0077 LDS	R18,T_int+2
     33B 9130 0078 LDS	R19,T_int+3
     33D 9100 0075 LDS	R16,T_int
     33F 9110 0076 LDS	R17,T_int+1
     341 937A      ST	R23,-Y
     342 936A      ST	R22,-Y
     343 935A      ST	R21,-Y
     344 934A      ST	R20,-Y
     345 940E 037C CALL	mod32u
     347 8319      STD	Y+1,R17
     348 8308      STD	Y+0,R16
     349 9120 0074 LDS	R18,i
     34B 2733      CLR	R19
     34C E001      LDI	R16,1
     34D E010      LDI	R17,0
     34E DE0C      RCALL	_WriteNum
(0112) 		T_int/=10;
     34F E04A      LDI	R20,0xA
     350 E050      LDI	R21,0
     351 E060      LDI	R22,0
     352 E070      LDI	R23,0
     353 9120 0077 LDS	R18,T_int+2
     355 9130 0078 LDS	R19,T_int+3
     357 9100 0075 LDS	R16,T_int
     359 9110 0076 LDS	R17,T_int+1
     35B 937A      ST	R23,-Y
     35C 936A      ST	R22,-Y
     35D 935A      ST	R21,-Y
     35E 934A      ST	R20,-Y
     35F 940E 037A CALL	div32u
     361 9310 0076 STS	T_int+1,R17
     363 9300 0075 STS	T_int,R16
     365 9330 0078 STS	T_int+3,R19
     367 9320 0077 STS	T_int+2,R18
     369 9180 0074 LDS	R24,i
     36B 5081      SUBI	R24,1
     36C 9380 0074 STS	i,R24
     36E E085      LDI	R24,5
     36F 9020 0074 LDS	R2,i
     371 1582      CP	R24,R2
     372 F210      BCS	0x0335
(0113) 	 }
(0114) 	 t=0;
     373 2422      CLR	R2
     374 9220 0073 STS	t,R2
(0115) 	 init_devices();
FILE: <library>
     376 DE9C      RCALL	_init_devices
     377 CEE8      RJMP	0x0260
     378 9624      ADIW	R28,4
     379 9508      RET
div32u:
     37A 94E8      BCLR	6
     37B C001      RJMP	0x037D
mod32u:
     37C 9468      BSET	6
     37D D030      RCALL	long_div_prolog
     37E 24CC      CLR	R12
     37F C009      RJMP	0x0389
div32s:
     380 94E8      BCLR	6
     381 C001      RJMP	0x0383
mod32s:
     382 9468      BSET	6
     383 D02A      RCALL	long_div_prolog
     384 FD37      SBRC	R19,7
     385 940E 0438 CALL	neg32
     387 FDB7      SBRC	R27,7
     388 D052      RCALL	neg_R24_R27
     389 2477      CLR	R7
     38A 2488      CLR	R8
     38B 2499      CLR	R9
     38C 24AA      CLR	R10
     38D 24BB      CLR	R11
     38E D042      RCALL	tst_R16_R19
     38F F0C1      BEQ	0x03A8
     390 D045      RCALL	tst_R24_R27
     391 F0B1      BEQ	0x03A8
     392 E2E8      LDI	R30,0x28
     393 0F00      LSL	R16
     394 1F11      ROL	R17
     395 1F22      ROL	R18
     396 1F33      ROL	R19
     397 1C77      ROL	R7
     398 1C88      ROL	R8
     399 1C99      ROL	R9
     39A 1CAA      ROL	R10
     39B 1CBB      ROL	R11
     39C 1688      CP	R8,R24
     39D 0699      CPC	R9,R25
     39E 06AA      CPC	R10,R26
     39F 06BB      CPC	R11,R27
     3A0 F028      BCS	0x03A6
     3A1 1A88      SUB	R8,R24
     3A2 0A99      SBC	R9,R25
     3A3 0AAA      SBC	R10,R26
     3A4 0ABB      SBC	R11,R27
     3A5 9503      INC	R16
     3A6 95EA      DEC	R30
     3A7 F759      BNE	0x0393
     3A8 F426      BRTC	0x03AD
     3A9 2D08      MOV	R16,R8
     3AA 2D19      MOV	R17,R9
     3AB 2D2A      MOV	R18,R10
     3AC 2D3B      MOV	R19,R11
     3AD C013      RJMP	long_div_epilog
long_div_prolog:
     3AE 927A      ST	R7,-Y
     3AF 928A      ST	R8,-Y
     3B0 929A      ST	R9,-Y
     3B1 92AA      ST	R10,-Y
     3B2 92BA      ST	R11,-Y
     3B3 92CA      ST	R12,-Y
     3B4 93EA      ST	R30,-Y
     3B5 938A      ST	R24,-Y
     3B6 939A      ST	R25,-Y
     3B7 93AA      ST	R26,-Y
     3B8 93BA      ST	R27,-Y
     3B9 858B      LDD	R24,Y+11
     3BA 859C      LDD	R25,Y+12
     3BB 85AD      LDD	R26,Y+13
     3BC 85BE      LDD	R27,Y+14
     3BD 2EC3      MOV	R12,R19
     3BE F00E      BRTS	0x03C0
     3BF 26CB      EOR	R12,R27
     3C0 9508      RET
long_div_epilog:
     3C1 FCC7      SBRC	R12,7
     3C2 940E 0438 CALL	neg32
     3C4 91B9      LD	R27,Y+
     3C5 91A9      LD	R26,Y+
     3C6 9199      LD	R25,Y+
     3C7 9189      LD	R24,Y+
     3C8 91E9      LD	R30,Y+
     3C9 90C9      LD	R12,Y+
     3CA 90B9      LD	R11,Y+
     3CB 90A9      LD	R10,Y+
     3CC 9099      LD	R9,Y+
     3CD 9089      LD	R8,Y+
     3CE 9079      LD	R7,Y+
     3CF 9624      ADIW	R28,4
     3D0 9508      RET
tst_R16_R19:
     3D1 2FE0      MOV	R30,R16
     3D2 2BE1      OR	R30,R17
     3D3 2BE2      OR	R30,R18
     3D4 2BE3      OR	R30,R19
     3D5 9508      RET
tst_R24_R27:
     3D6 2FE8      MOV	R30,R24
     3D7 2BE9      OR	R30,R25
     3D8 2BEA      OR	R30,R26
     3D9 2BEB      OR	R30,R27
     3DA 9508      RET
neg_R24_R27:
     3DB 9580      COM	R24
     3DC 9590      COM	R25
     3DD 95A0      COM	R26
     3DE 95B0      COM	R27
     3DF 5F8F      SUBI	R24,0xFF
     3E0 4F9F      SBCI	R25,0xFF
     3E1 4FAF      SBCI	R26,0xFF
     3E2 4FBF      SBCI	R27,0xFF
     3E3 9508      RET
empy32s:
empy32u:
     3E4 940E 0441 CALL	long_prolog
     3E6 927A      ST	R7,-Y
     3E7 940E 045A CALL	tstzero1
     3E9 F159      BEQ	0x0415
     3EA 2477      CLR	R7
     3EB 940E 0460 CALL	tstzero2
     3ED F419      BNE	0x03F1
     3EE 018C      MOVW	R16,R24
     3EF 019D      MOVW	R18,R26
     3F0 C024      RJMP	0x0415
     3F1 920A      ST	R0,-Y
     3F2 921A      ST	R1,-Y
     3F3 9F08      MUL	R16,R24
     3F4 2CB0      MOV	R11,R0
     3F5 2CA1      MOV	R10,R1
     3F6 9F28      MUL	R18,R24
     3F7 2C90      MOV	R9,R0
     3F8 2C81      MOV	R8,R1
     3F9 9F18      MUL	R17,R24
     3FA 0CA0      ADD	R10,R0
     3FB 1C91      ADC	R9,R1
     3FC 1C87      ADC	R8,R7
     3FD 9F09      MUL	R16,R25
     3FE 0CA0      ADD	R10,R0
     3FF 1C91      ADC	R9,R1
     400 1C87      ADC	R8,R7
     401 9F19      MUL	R17,R25
     402 0C90      ADD	R9,R0
     403 1C81      ADC	R8,R1
     404 9F0A      MUL	R16,R26
     405 0C90      ADD	R9,R0
     406 1C81      ADC	R8,R1
     407 9F38      MUL	R19,R24
     408 0C80      ADD	R8,R0
     409 9F29      MUL	R18,R25
     40A 0C80      ADD	R8,R0
     40B 9F1A      MUL	R17,R26
     40C 0C80      ADD	R8,R0
     40D 9F0B      MUL	R16,R27
     40E 0C80      ADD	R8,R0
     40F 9019      LD	R1,Y+
     410 9009      LD	R0,Y+
     411 2D0B      MOV	R16,R11
     412 2D1A      MOV	R17,R10
     413 2D29      MOV	R18,R9
     414 2D38      MOV	R19,R8
     415 9079      LD	R7,Y+
     416 940C 044F JMP	long_epilog
push_xgsetF00C:
     418 937A      ST	R23,-Y
     419 936A      ST	R22,-Y
     41A 935A      ST	R21,-Y
     41B 934A      ST	R20,-Y
     41C 92BA      ST	R11,-Y
     41D 92AA      ST	R10,-Y
     41E 9508      RET
pop_xgsetF00C:
     41F 90A9      LD	R10,Y+
     420 90B9      LD	R11,Y+
     421 9149      LD	R20,Y+
     422 9159      LD	R21,Y+
     423 9169      LD	R22,Y+
     424 9179      LD	R23,Y+
     425 9508      RET
push_xgsetF03C:
     426 937A      ST	R23,-Y
     427 936A      ST	R22,-Y
     428 935A      ST	R21,-Y
     429 934A      ST	R20,-Y
     42A 92DA      ST	R13,-Y
     42B 92CA      ST	R12,-Y
     42C 92BA      ST	R11,-Y
     42D 92AA      ST	R10,-Y
     42E 9508      RET
pop_xgsetF03C:
     42F 90A9      LD	R10,Y+
     430 90B9      LD	R11,Y+
     431 90C9      LD	R12,Y+
     432 90D9      LD	R13,Y+
     433 9149      LD	R20,Y+
     434 9159      LD	R21,Y+
     435 9169      LD	R22,Y+
     436 9179      LD	R23,Y+
     437 9508      RET
neg32:
     438 9500      COM	R16
     439 9510      COM	R17
     43A 9520      COM	R18
     43B 9530      COM	R19
     43C 5F0F      SUBI	R16,0xFF
     43D 4F1F      SBCI	R17,0xFF
     43E 4F2F      SBCI	R18,0xFF
     43F 4F3F      SBCI	R19,0xFF
     440 9508      RET
long_prolog:
     441 928A      ST	R8,-Y
     442 929A      ST	R9,-Y
     443 92AA      ST	R10,-Y
     444 92BA      ST	R11,-Y
     445 93EA      ST	R30,-Y
     446 938A      ST	R24,-Y
     447 939A      ST	R25,-Y
     448 93AA      ST	R26,-Y
     449 93BA      ST	R27,-Y
     44A 8589      LDD	R24,Y+9
     44B 859A      LDD	R25,Y+10
     44C 85AB      LDD	R26,Y+11
     44D 85BC      LDD	R27,Y+12
     44E 9508      RET
long_epilog:
     44F 91B9      LD	R27,Y+
     450 91A9      LD	R26,Y+
     451 9199      LD	R25,Y+
     452 9189      LD	R24,Y+
     453 91E9      LD	R30,Y+
     454 90B9      LD	R11,Y+
     455 90A9      LD	R10,Y+
     456 9099      LD	R9,Y+
     457 9089      LD	R8,Y+
     458 9624      ADIW	R28,4
     459 9508      RET
tstzero1:
     45A 27EE      CLR	R30
     45B 2BE0      OR	R30,R16
     45C 2BE1      OR	R30,R17
     45D 2BE2      OR	R30,R18
     45E 2BE3      OR	R30,R19
     45F 9508      RET
tstzero2:
     460 27EE      CLR	R30
     461 2BE8      OR	R30,R24
     462 2BE9      OR	R30,R25
     463 2BEA      OR	R30,R26
     464 2BEB      OR	R30,R27
     465 9508      RET
lpm32:
     466 93EA      ST	R30,-Y
     467 93FA      ST	R31,-Y
     468 920A      ST	R0,-Y
     469 2FE0      MOV	R30,R16
     46A 2FF1      MOV	R31,R17
     46B 95C8      LPM
     46C 2D00      MOV	R16,R0
     46D 9631      ADIW	R30,1
     46E 95C8      LPM
     46F 2D10      MOV	R17,R0
     470 9631      ADIW	R30,1
     471 95C8      LPM
     472 2D20      MOV	R18,R0
     473 9631      ADIW	R30,1
     474 95C8      LPM
     475 2D30      MOV	R19,R0
     476 9009      LD	R0,Y+
     477 91F9      LD	R31,Y+
     478 91E9      LD	R30,Y+
     479 9508      RET
fpint:
     47A 934A      ST	R20,-Y
     47B 935A      ST	R21,-Y
     47C 936A      ST	R22,-Y
     47D 940E 0586 CALL	unpacku
     47F F0F1      BEQ	0x049E
     480 2355      TST	R21
     481 F0C2      BMI	0x049A
     482 314F      CPI	R20,0x1F
     483 F4A8      BCC	0x0499
     484 3147      CPI	R20,0x17
     485 F0C1      BEQ	0x049E
     486 F450      BCC	0x0491

⌨️ 快捷键说明

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