📄 smart.lst
字号:
(0657) if(speeda > 1020)
02BD EF8C LDI R24,0xFC
02BE E093 LDI R25,3
02BF 1780 CP R24,R16
02C0 0791 CPC R25,R17
02C1 F408 BCC 0x02C3
(0658) speeda = 1020;
02C2 015C MOVW R10,R24
(0659) motor_a(1,speeda);
02C3 0195 MOVW R18,R10
02C4 E001 LDI R16,1
02C5 DDAC RCALL _motor_a
(0660) }
(0661) }
02C6 C020 RJMP 0x02E7
(0662) else
(0663) {
(0664) speeda = sj1-sj0;
02C7 0157 MOVW R10,R14
02C8 A00B LDD R0,Y+35
02C9 A01C LDD R1,Y+36
02CA 18A0 SUB R10,R0
02CB 08B1 SBC R11,R1
(0665) if(speeda<50)
02CC 01C5 MOVW R24,R10
02CD 3382 CPI R24,0x32
02CE E0E0 LDI R30,0
02CF 079E CPC R25,R30
02D0 F428 BCC 0x02D6
(0666) motor_a(0,0);
02D1 2722 CLR R18
02D2 2733 CLR R19
02D3 2700 CLR R16
02D4 DD9D RCALL _motor_a
02D5 C011 RJMP 0x02E7
(0667) else
(0668) {
(0669) speeda = 5*(speeda-50);
02D6 0195 MOVW R18,R10
02D7 5322 SUBI R18,0x32
02D8 4030 SBCI R19,0
02D9 E005 LDI R16,5
02DA E010 LDI R17,0
02DB 940E03DE CALL empy16s
02DD 0158 MOVW R10,R16
(0670) if(speeda > 1020)
02DE EF8C LDI R24,0xFC
02DF E093 LDI R25,3
02E0 1780 CP R24,R16
02E1 0791 CPC R25,R17
02E2 F408 BCC 0x02E4
(0671) speeda = 1020;
02E3 015C MOVW R10,R24
(0672) motor_a(0,speeda);
02E4 0195 MOVW R18,R10
02E5 2700 CLR R16
02E6 DD8B RCALL _motor_a
(0673) }
(0674) }
(0675) if(sj2>sj3)
02E7 154C CP R20,R12
02E8 055D CPC R21,R13
02E9 F4F8 BCC 0x0309
(0676) {
(0677) speedb = sj2-sj3;
02EA 01B6 MOVW R22,R12
02EB 1B64 SUB R22,R20
02EC 0B75 SBC R23,R21
(0678) if(speedb<50)
02ED 3362 CPI R22,0x32
02EE E0E0 LDI R30,0
02EF 077E CPC R23,R30
02F0 F428 BCC 0x02F6
(0679) motor_b(1,0);
02F1 2722 CLR R18
02F2 2733 CLR R19
02F3 E001 LDI R16,1
02F4 DD87 RCALL _motor_b
02F5 C03A RJMP 0x0330
(0680) else
(0681) {
(0682) speedb = 5*(speedb-50);
02F6 019B MOVW R18,R22
02F7 5322 SUBI R18,0x32
02F8 4030 SBCI R19,0
02F9 E005 LDI R16,5
02FA E010 LDI R17,0
02FB 940E03DE CALL empy16s
02FD 01B8 MOVW R22,R16
(0683) if(speedb > 1020)
02FE EF8C LDI R24,0xFC
02FF E093 LDI R25,3
0300 1780 CP R24,R16
0301 0791 CPC R25,R17
0302 F410 BCC 0x0305
(0684) speedb = 1020;
0303 EF6C LDI R22,0xFC
0304 E073 LDI R23,3
(0685) motor_b(1,speedb);
0305 019B MOVW R18,R22
0306 E001 LDI R16,1
0307 DD74 RCALL _motor_b
(0686) }
(0687) }
0308 C027 RJMP 0x0330
(0688) else
(0689) {
(0690) speedb = sj1-sj0;
0309 01B7 MOVW R22,R14
030A A00B LDD R0,Y+35
030B A01C LDD R1,Y+36
030C 1960 SUB R22,R0
030D 0971 SBC R23,R1
(0691) if(speedb<50)
030E 3362 CPI R22,0x32
030F E0E0 LDI R30,0
0310 077E CPC R23,R30
0311 F428 BCC 0x0317
(0692) motor_b(0,0);
0312 2722 CLR R18
0313 2733 CLR R19
0314 2700 CLR R16
0315 DD66 RCALL _motor_b
0316 C019 RJMP 0x0330
(0693) else
(0694) {
(0695) speedb = 5*(speedb-50);
0317 019B MOVW R18,R22
0318 5322 SUBI R18,0x32
0319 4030 SBCI R19,0
031A E005 LDI R16,5
031B E010 LDI R17,0
031C 940E03DE CALL empy16s
031E 01B8 MOVW R22,R16
(0696) if(speedb > 1020)
031F EF8C LDI R24,0xFC
0320 E093 LDI R25,3
0321 1780 CP R24,R16
0322 0791 CPC R25,R17
0323 F410 BCC 0x0326
(0697) speedb = 1020;
0324 EF6C LDI R22,0xFC
0325 E073 LDI R23,3
(0698) motor_b(0,5*(speedb-50));
FILE: <library>
0326 019B MOVW R18,R22
0327 5322 SUBI R18,0x32
0328 4030 SBCI R19,0
0329 E005 LDI R16,5
032A E010 LDI R17,0
032B 940E03DE CALL empy16s
032D 0198 MOVW R18,R16
032E 2700 CLR R16
032F DD4C RCALL _motor_b
0330 CF32 RJMP 0x0263
0331 96A5 ADIW R28,0x25
0332 9508 RET
mod16s:
0333 9468 BSET 6
0334 92DA ST R13,-Y
0335 2ED1 MOV R13,R17
0336 C004 RJMP 0x033B
div16s:
0337 94E8 BCLR 6
0338 92DA ST R13,-Y
0339 2ED1 MOV R13,R17
033A 26D3 EOR R13,R19
033B FF17 SBRS R17,7
033C C004 RJMP 0x0341
033D 9510 COM R17
033E 9500 COM R16
033F 5F0F SUBI R16,0xFF
0340 4F1F SBCI R17,0xFF
0341 FF37 SBRS R19,7
0342 C004 RJMP 0x0347
0343 9530 COM R19
0344 9520 COM R18
0345 5F2F SUBI R18,0xFF
0346 4F3F SBCI R19,0xFF
0347 940E0354 CALL xdiv16u
0349 FED7 SBRS R13,7
034A C004 RJMP 0x034F
034B 9510 COM R17
034C 9500 COM R16
034D 5F0F SUBI R16,0xFF
034E 4F1F SBCI R17,0xFF
034F 90D9 LD R13,Y+
0350 9508 RET
mod16u:
0351 9468 BSET 6
0352 C001 RJMP xdiv16u
div16u:
0353 94E8 BCLR 6
xdiv16u:
0354 92EA ST R14,-Y
0355 92FA ST R15,-Y
0356 938A ST R24,-Y
0357 24EE CLR R14
0358 24FF CLR R15
0359 E180 LDI R24,0x10
035A 0F00 LSL R16
035B 1F11 ROL R17
035C 1CEE ROL R14
035D 1CFF ROL R15
035E 16E2 CP R14,R18
035F 06F3 CPC R15,R19
0360 F018 BCS 0x0364
0361 1AE2 SUB R14,R18
0362 0AF3 SBC R15,R19
0363 9503 INC R16
0364 958A DEC R24
0365 F7A1 BNE 0x035A
0366 F416 BRTC 0x0369
0367 2D0E MOV R16,R14
0368 2D1F MOV R17,R15
0369 9189 LD R24,Y+
036A 90F9 LD R15,Y+
036B 90E9 LD R14,Y+
036C 9508 RET
div32u:
036D 94E8 BCLR 6
036E C001 RJMP 0x0370
mod32u:
036F 9468 BSET 6
0370 D02F RCALL long_div_prolog
0371 24CC CLR R12
0372 C008 RJMP 0x037B
div32s:
0373 94E8 BCLR 6
0374 C001 RJMP 0x0376
mod32s:
0375 9468 BSET 6
0376 D029 RCALL long_div_prolog
0377 FD37 SBRC R19,7
0378 D053 RCALL neg_R16_R19
0379 FDB7 SBRC R27,7
037A D05A RCALL neg_R24_R27
037B 2477 CLR R7
037C 2488 CLR R8
037D 2499 CLR R9
037E 24AA CLR R10
037F 24BB CLR R11
0380 D041 RCALL tst_R16_R19
0381 F0C1 BEQ 0x039A
0382 D044 RCALL tst_R24_R27
0383 F0B1 BEQ 0x039A
0384 E2E8 LDI R30,0x28
0385 0F00 LSL R16
0386 1F11 ROL R17
0387 1F22 ROL R18
0388 1F33 ROL R19
0389 1C77 ROL R7
038A 1C88 ROL R8
038B 1C99 ROL R9
038C 1CAA ROL R10
038D 1CBB ROL R11
038E 1688 CP R8,R24
038F 0699 CPC R9,R25
0390 06AA CPC R10,R26
0391 06BB CPC R11,R27
0392 F028 BCS 0x0398
0393 1A88 SUB R8,R24
0394 0A99 SBC R9,R25
0395 0AAA SBC R10,R26
0396 0ABB SBC R11,R27
0397 9503 INC R16
0398 95EA DEC R30
0399 F759 BNE 0x0385
039A F426 BRTC 0x039F
039B 2D08 MOV R16,R8
039C 2D19 MOV R17,R9
039D 2D2A MOV R18,R10
039E 2D3B MOV R19,R11
039F C013 RJMP long_div_epilog
long_div_prolog:
03A0 927A ST R7,-Y
03A1 928A ST R8,-Y
03A2 929A ST R9,-Y
03A3 92AA ST R10,-Y
03A4 92BA ST R11,-Y
03A5 92CA ST R12,-Y
03A6 93EA ST R30,-Y
03A7 938A ST R24,-Y
03A8 939A ST R25,-Y
03A9 93AA ST R26,-Y
03AA 93BA ST R27,-Y
03AB 858B LDD R24,Y+11
03AC 859C LDD R25,Y+12
03AD 85AD LDD R26,Y+13
03AE 85BE LDD R27,Y+14
03AF 2EC3 MOV R12,R19
03B0 F00E BRTS 0x03B2
03B1 26CB EOR R12,R27
03B2 9508 RET
long_div_epilog:
03B3 FCC7 SBRC R12,7
03B4 D017 RCALL neg_R16_R19
03B5 91B9 LD R27,Y+
03B6 91A9 LD R26,Y+
03B7 9199 LD R25,Y+
03B8 9189 LD R24,Y+
03B9 91E9 LD R30,Y+
03BA 90C9 LD R12,Y+
03BB 90B9 LD R11,Y+
03BC 90A9 LD R10,Y+
03BD 9099 LD R9,Y+
03BE 9089 LD R8,Y+
03BF 9079 LD R7,Y+
03C0 9624 ADIW R28,4
03C1 9508 RET
tst_R16_R19:
03C2 2FE0 MOV R30,R16
03C3 2BE1 OR R30,R17
03C4 2BE2 OR R30,R18
03C5 2BE3 OR R30,R19
03C6 9508 RET
tst_R24_R27:
03C7 2FE8 MOV R30,R24
03C8 2BE9 OR R30,R25
03C9 2BEA OR R30,R26
03CA 2BEB OR R30,R27
03CB 9508 RET
neg_R16_R19:
03CC 9500 COM R16
03CD 9510 COM R17
03CE 9520 COM R18
03CF 9530 COM R19
03D0 5F0F SUBI R16,0xFF
03D1 4F1F SBCI R17,0xFF
03D2 4F2F SBCI R18,0xFF
03D3 4F3F SBCI R19,0xFF
03D4 9508 RET
neg_R24_R27:
03D5 9580 COM R24
03D6 9590 COM R25
03D7 95A0 COM R26
03D8 95B0 COM R27
03D9 5F8F SUBI R24,0xFF
03DA 4F9F SBCI R25,0xFF
03DB 4FAF SBCI R26,0xFF
03DC 4FBF SBCI R27,0xFF
03DD 9508 RET
empy16s:
03DE 920A ST R0,-Y
03DF 921A ST R1,-Y
03E0 938A ST R24,-Y
03E1 939A ST R25,-Y
03E2 9F02 MUL R16,R18
03E3 01C0 MOVW R24,R0
03E4 9F12 MUL R17,R18
03E5 0D90 ADD R25,R0
03E6 9F03 MUL R16,R19
03E7 0D90 ADD R25,R0
03E8 018C MOVW R16,R24
03E9 9199 LD R25,Y+
03EA 9189 LD R24,Y+
03EB 9019 LD R1,Y+
03EC 9009 LD R0,Y+
03ED 9508 RET
pop_gset2:
03EE E0E2 LDI R30,2
03EF 940C0400 JMP pop
pop_gset3:
03F1 E0E4 LDI R30,4
03F2 940C0400 JMP pop
push_gset5:
03F4 92FA ST R15,-Y
03F5 92EA ST R14,-Y
push_gset4:
03F6 92DA ST R13,-Y
03F7 92CA ST R12,-Y
push_gset3:
03F8 92BA ST R11,-Y
03F9 92AA ST R10,-Y
push_gset2:
03FA 937A ST R23,-Y
03FB 936A ST R22,-Y
push_gset1:
03FC 935A ST R21,-Y
03FD 934A ST R20,-Y
03FE 9508 RET
pop_gset1:
03FF E0E1 LDI R30,1
pop:
0400 9149 LD R20,Y+
0401 9159 LD R21,Y+
0402 FDE0 SBRC R30,0
0403 9508 RET
0404 9169 LD R22,Y+
0405 9179 LD R23,Y+
0406 FDE1 SBRC R30,1
0407 9508 RET
0408 90A9 LD R10,Y+
0409 90B9 LD R11,Y+
040A FDE2 SBRC R30,2
040B 9508 RET
040C 90C9 LD R12,Y+
040D 90D9 LD R13,Y+
040E FDE3 SBRC R30,3
040F 9508 RET
0410 90E9 LD R14,Y+
0411 90F9 LD R15,Y+
0412 9508 RET
asgncblk:
0413 93AA ST R26,-Y
0414 93BA ST R27,-Y
0415 93EA ST R30,-Y
0416 93FA ST R31,-Y
0417 920A ST R0,-Y
0418 81AF LDD R26,Y+7
0419 85B8 LDD R27,Y+8
041A 81ED LDD R30,Y+5
041B 81FE LDD R31,Y+6
041C 3000 CPI R16,0
041D 0701 CPC R16,R17
041E F031 BEQ 0x0425
041F 95C8 LPM
0420 920D ST R0,X+
0421 9631 ADIW R30,1
0422 5001 SUBI R16,1
0423 4010 SBCI R17,0
0424 CFF7 RJMP 0x041C
0425 9009 LD R0,Y+
0426 91F9 LD R31,Y+
0427 91E9 LD R30,Y+
0428 91B9 LD R27,Y+
0429 91A9 LD R26,Y+
042A 9624 ADIW R28,4
042B 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -