📄 hc595.lst
字号:
02C2 933A ST R19,-Y
02C3 932A ST R18,-Y
02C4 931A ST R17,-Y
02C5 930A ST R16,-Y
02C6 940E04E7 CALL sub32f
02C8 940E046A CALL fp2int
02CA 01B8 MOVW R22,R16
02CB 5060 SUBI R22,0
02CC 4870 SBCI R23,0x80
02CD C008 RJMP 0x02D6
02CE 01FE MOVW R30,R28
02CF 8100 LDD R16,Z+0
02D0 8111 LDD R17,Z+1
02D1 8122 LDD R18,Z+2
02D2 8133 LDD R19,Z+3
02D3 940E046A CALL fp2int
02D5 01B8 MOVW R22,R16
02D6 01AB MOVW R20,R22
(0167) point_pos=1;
02D7 E081 LDI R24,1
02D8 93800103 STS point_pos,R24
(0168) Seg7_Led_Buf[3]=temp/1000;
02DA EE28 LDI R18,0xE8
02DB E033 LDI R19,3
02DC 018A MOVW R16,R20
02DD 940E0411 CALL div16u
02DF 93000107 STS Seg7_Led_Buf+3,R16
(0169) Seg7_Led_Buf[2]=(temp%1000)/100;
02E1 EE28 LDI R18,0xE8
02E2 E033 LDI R19,3
02E3 018A MOVW R16,R20
02E4 940E040F CALL mod16u
02E6 E624 LDI R18,0x64
02E7 E030 LDI R19,0
02E8 940E0411 CALL div16u
02EA 93000106 STS Seg7_Led_Buf+2,R16
(0170) Seg7_Led_Buf[1]=(temp%100)/10;
02EC E624 LDI R18,0x64
02ED E030 LDI R19,0
02EE 018A MOVW R16,R20
02EF 940E040F CALL mod16u
02F1 E02A LDI R18,0xA
02F2 E030 LDI R19,0
02F3 940E0411 CALL div16u
02F5 93000105 STS Seg7_Led_Buf+1,R16
(0171) Seg7_Led_Buf[0]=temp%10;
02F7 E02A LDI R18,0xA
02F8 E030 LDI R19,0
02F9 018A MOVW R16,R20
02FA 940E040F CALL mod16u
02FC 93000104 STS Seg7_Led_Buf,R16
(0172) Seg7_Led_Update();
02FE DE30 RCALL _Seg7_Led_Update
(0173) }
02FF C102 RJMP 0x0402
(0174) else if(data>9)
0300 EA05 LDI R16,0xA5
0301 E010 LDI R17,0
0302 940E0456 CALL lpm32
0304 933A ST R19,-Y
0305 932A ST R18,-Y
0306 931A ST R17,-Y
0307 930A ST R16,-Y
0308 01FE MOVW R30,R28
0309 8424 LDD R2,Z+12
030A 8435 LDD R3,Z+13
030B 8446 LDD R4,Z+14
030C 8457 LDD R5,Z+15
030D 925A ST R5,-Y
030E 924A ST R4,-Y
030F 923A ST R3,-Y
0310 922A ST R2,-Y
0311 940E053D CALL cmp32f
0313 F00C BLT 0x0315
0314 C077 RJMP 0x038C
(0175) {
(0176) temp=data*100;
0315 EA01 LDI R16,0xA1
0316 E010 LDI R17,0
0317 940E0456 CALL lpm32
0319 933A ST R19,-Y
031A 932A ST R18,-Y
031B 931A ST R17,-Y
031C 930A ST R16,-Y
031D 01FE MOVW R30,R28
031E 8424 LDD R2,Z+12
031F 8435 LDD R3,Z+13
0320 8446 LDD R4,Z+14
0321 8457 LDD R5,Z+15
0322 925A ST R5,-Y
0323 924A ST R4,-Y
0324 923A ST R3,-Y
0325 922A ST R2,-Y
0326 940E0571 CALL empy32f
0328 01FE MOVW R30,R28
0329 8300 STD Z+0,R16
032A 8311 STD Z+1,R17
032B 8322 STD Z+2,R18
032C 8333 STD Z+3,R19
032D 01FE MOVW R30,R28
032E 8020 LDD R2,Z+0
032F 8031 LDD R3,Z+1
0330 8042 LDD R4,Z+2
0331 8053 LDD R5,Z+3
0332 925A ST R5,-Y
0333 924A ST R4,-Y
0334 923A ST R3,-Y
0335 922A ST R2,-Y
0336 EA09 LDI R16,0xA9
0337 E010 LDI R17,0
0338 940E0456 CALL lpm32
033A 933A ST R19,-Y
033B 932A ST R18,-Y
033C 931A ST R17,-Y
033D 930A ST R16,-Y
033E 940E053D CALL cmp32f
0340 F0CC BLT 0x035A
0341 01FE MOVW R30,R28
0342 8020 LDD R2,Z+0
0343 8031 LDD R3,Z+1
0344 8042 LDD R4,Z+2
0345 8053 LDD R5,Z+3
0346 925A ST R5,-Y
0347 924A ST R4,-Y
0348 923A ST R3,-Y
0349 922A ST R2,-Y
034A EA09 LDI R16,0xA9
034B E010 LDI R17,0
034C 940E0456 CALL lpm32
034E 933A ST R19,-Y
034F 932A ST R18,-Y
0350 931A ST R17,-Y
0351 930A ST R16,-Y
0352 940E04E7 CALL sub32f
0354 940E046A CALL fp2int
0356 01B8 MOVW R22,R16
0357 5060 SUBI R22,0
0358 4870 SBCI R23,0x80
0359 C008 RJMP 0x0362
035A 01FE MOVW R30,R28
035B 8100 LDD R16,Z+0
035C 8111 LDD R17,Z+1
035D 8122 LDD R18,Z+2
035E 8133 LDD R19,Z+3
035F 940E046A CALL fp2int
0361 01B8 MOVW R22,R16
0362 01AB MOVW R20,R22
(0177) point_pos=2;
0363 E082 LDI R24,2
0364 93800103 STS point_pos,R24
(0178) Seg7_Led_Buf[3]=temp/1000;
0366 EE28 LDI R18,0xE8
0367 E033 LDI R19,3
0368 018A MOVW R16,R20
0369 940E0411 CALL div16u
036B 93000107 STS Seg7_Led_Buf+3,R16
(0179) Seg7_Led_Buf[2]=(temp%1000)/100;
036D EE28 LDI R18,0xE8
036E E033 LDI R19,3
036F 018A MOVW R16,R20
0370 940E040F CALL mod16u
0372 E624 LDI R18,0x64
0373 E030 LDI R19,0
0374 940E0411 CALL div16u
0376 93000106 STS Seg7_Led_Buf+2,R16
(0180) Seg7_Led_Buf[1]=(temp%100)/10;
0378 E624 LDI R18,0x64
0379 E030 LDI R19,0
037A 018A MOVW R16,R20
037B 940E040F CALL mod16u
037D E02A LDI R18,0xA
037E E030 LDI R19,0
037F 940E0411 CALL div16u
0381 93000105 STS Seg7_Led_Buf+1,R16
(0181) Seg7_Led_Buf[0]=temp%10;
0383 E02A LDI R18,0xA
0384 E030 LDI R19,0
0385 018A MOVW R16,R20
0386 940E040F CALL mod16u
0388 93000104 STS Seg7_Led_Buf,R16
(0182) Seg7_Led_Update();
038A DDA4 RCALL _Seg7_Led_Update
(0183) }
038B C076 RJMP 0x0402
(0184) else
(0185) {
(0186) temp=data*1000;
038C E90D LDI R16,0x9D
038D E010 LDI R17,0
038E 940E0456 CALL lpm32
0390 933A ST R19,-Y
0391 932A ST R18,-Y
0392 931A ST R17,-Y
0393 930A ST R16,-Y
0394 01FE MOVW R30,R28
0395 8424 LDD R2,Z+12
0396 8435 LDD R3,Z+13
0397 8446 LDD R4,Z+14
0398 8457 LDD R5,Z+15
0399 925A ST R5,-Y
039A 924A ST R4,-Y
039B 923A ST R3,-Y
039C 922A ST R2,-Y
039D 940E0571 CALL empy32f
039F 01FE MOVW R30,R28
03A0 8300 STD Z+0,R16
03A1 8311 STD Z+1,R17
03A2 8322 STD Z+2,R18
03A3 8333 STD Z+3,R19
03A4 01FE MOVW R30,R28
03A5 8020 LDD R2,Z+0
03A6 8031 LDD R3,Z+1
03A7 8042 LDD R4,Z+2
03A8 8053 LDD R5,Z+3
03A9 925A ST R5,-Y
03AA 924A ST R4,-Y
03AB 923A ST R3,-Y
03AC 922A ST R2,-Y
03AD EA09 LDI R16,0xA9
03AE E010 LDI R17,0
03AF 940E0456 CALL lpm32
03B1 933A ST R19,-Y
03B2 932A ST R18,-Y
03B3 931A ST R17,-Y
03B4 930A ST R16,-Y
03B5 940E053D CALL cmp32f
03B7 F0CC BLT 0x03D1
03B8 01FE MOVW R30,R28
03B9 8020 LDD R2,Z+0
03BA 8031 LDD R3,Z+1
03BB 8042 LDD R4,Z+2
03BC 8053 LDD R5,Z+3
03BD 925A ST R5,-Y
03BE 924A ST R4,-Y
03BF 923A ST R3,-Y
03C0 922A ST R2,-Y
03C1 EA09 LDI R16,0xA9
03C2 E010 LDI R17,0
03C3 940E0456 CALL lpm32
03C5 933A ST R19,-Y
03C6 932A ST R18,-Y
03C7 931A ST R17,-Y
03C8 930A ST R16,-Y
03C9 940E04E7 CALL sub32f
03CB 940E046A CALL fp2int
03CD 01B8 MOVW R22,R16
03CE 5060 SUBI R22,0
03CF 4870 SBCI R23,0x80
03D0 C008 RJMP 0x03D9
03D1 01FE MOVW R30,R28
03D2 8100 LDD R16,Z+0
03D3 8111 LDD R17,Z+1
03D4 8122 LDD R18,Z+2
03D5 8133 LDD R19,Z+3
03D6 940E046A CALL fp2int
03D8 01B8 MOVW R22,R16
03D9 01AB MOVW R20,R22
(0187) point_pos=3;
03DA E083 LDI R24,3
03DB 93800103 STS point_pos,R24
(0188) Seg7_Led_Buf[3]=temp/1000;
03DD EE28 LDI R18,0xE8
03DE E033 LDI R19,3
03DF 018A MOVW R16,R20
03E0 940E0411 CALL div16u
03E2 93000107 STS Seg7_Led_Buf+3,R16
(0189) Seg7_Led_Buf[2]=(temp%1000)/100;
03E4 EE28 LDI R18,0xE8
03E5 E033 LDI R19,3
03E6 018A MOVW R16,R20
03E7 940E040F CALL mod16u
03E9 E624 LDI R18,0x64
03EA E030 LDI R19,0
03EB 940E0411 CALL div16u
03ED 93000106 STS Seg7_Led_Buf+2,R16
(0190) Seg7_Led_Buf[1]=(temp%100)/10;
03EF E624 LDI R18,0x64
03F0 E030 LDI R19,0
03F1 018A MOVW R16,R20
03F2 940E040F CALL mod16u
03F4 E02A LDI R18,0xA
03F5 E030 LDI R19,0
03F6 940E0411 CALL div16u
03F8 93000105 STS Seg7_Led_Buf+1,R16
(0191) Seg7_Led_Buf[0]=temp%10;
03FA E02A LDI R18,0xA
03FB E030 LDI R19,0
03FC 018A MOVW R16,R20
03FD 940E040F CALL mod16u
03FF 93000104 STS Seg7_Led_Buf,R16
(0192) Seg7_Led_Update();
0401 DD2D RCALL _Seg7_Led_Update
(0193) }
(0194) point=0;
FILE: <library>
0402 2422 CLR R2
0403 92200102 STS point,R2
0405 9624 ADIW R28,4
0406 940E042B CALL pop_gset2
0408 9624 ADIW R28,4
0409 9508 RET
push_arg4:
040A 933A ST R19,-Y
040B 932A ST R18,-Y
push_arg2:
040C 931A ST R17,-Y
040D 930A ST R16,-Y
040E 9508 RET
mod16u:
040F 9468 BSET 6
0410 C001 RJMP xdiv16u
div16u:
0411 94E8 BCLR 6
xdiv16u:
0412 92EA ST R14,-Y
0413 92FA ST R15,-Y
0414 938A ST R24,-Y
0415 24EE CLR R14
0416 24FF CLR R15
0417 E180 LDI R24,0x10
0418 0F00 LSL R16
0419 1F11 ROL R17
041A 1CEE ROL R14
041B 1CFF ROL R15
041C 16E2 CP R14,R18
041D 06F3 CPC R15,R19
041E F018 BCS 0x0422
041F 1AE2 SUB R14,R18
0420 0AF3 SBC R15,R19
0421 9503 INC R16
0422 958A DEC R24
0423 F7A1 BNE 0x0418
0424 F416 BRTC 0x0427
0425 2D0E MOV R16,R14
0426 2D1F MOV R17,R15
0427 9189 LD R24,Y+
0428 90F9 LD R15,Y+
0429 90E9 LD R14,Y+
042A 9508 RET
pop_gset2:
042B E0E2 LDI R30,2
042C 940C043A JMP pop
push_gset5:
042E 92FA ST R15,-Y
042F 92EA ST R14,-Y
push_gset4:
0430 92DA ST R13,-Y
0431 92CA ST R12,-Y
push_gset3:
0432 92BA ST R11,-Y
0433 92AA ST R10,-Y
push_gset2:
0434 937A ST R23,-Y
0435 936A ST R22,-Y
push_gset1:
0436 935A ST R21,-Y
0437 934A ST R20,-Y
0438 9508 RET
pop_gset1:
0439 E0E1 LDI R30,1
pop:
043A 9149 LD R20,Y+
043B 9159 LD R21,Y+
043C FDE0 SBRC R30,0
043D 9508 RET
043E 9169 LD R22,Y+
043F 9179 LD R23,Y+
0440 FDE1 SBRC R30,1
0441 9508 RET
0442 90A9 LD R10,Y+
0443 90B9 LD R11,Y+
0444 FDE2 SBRC R30,2
0445 9508 RET
0446 90C9 LD R12,Y+
0447 90D9 LD R13,Y+
0448 FDE3 SBRC R30,3
0449 9508 RET
044A 90E9 LD R14,Y+
044B 90F9 LD R15,Y+
044C 9508 RET
neg32:
044D 9500 COM R16
044E 9510 COM R17
044F 9520 COM R18
0450 9530 COM R19
0451 5F0F SUBI R16,0xFF
0452 4F1F SBCI R17,0xFF
0453 4F2F SBCI R18,0xFF
0454 4F3F SBCI R19,0xFF
0455 9508 RET
lpm32:
0456 93EA ST R30,-Y
0457 93FA ST R31,-Y
0458 920A ST R0,-Y
0459 2FE0 MOV R30,R16
045A 2FF1 MOV R31,R17
045B 95C8 LPM
045C 2D00 MOV R16,R0
045D 9631 ADIW R30,1
045E 95C8 LPM
045F 2D10 MOV R17,R0
0460 9631 ADIW R30,1
0461 95C8 LPM
0462 2D20 MOV R18,R0
0463 9631 ADIW R30,1
0464 95C8 LPM
0465 2D30 MOV R19,R0
0466 9009 LD R0,Y+
0467 91F9 LD R31,Y+
0468 91E9 LD R30,Y+
0469 9508 RET
fp2int:
046A 940E05BB CALL savfacc1
046C D014 RCALL FTOI
046D 2F02 MOV R16,R18
046E 2F13 MOV R17,R19
046F FD87 SBRC R24,7
0470 C002 RJMP nojump1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -