📄 hc595.lst
字号:
0448 940C0587 JMP restorefacc1
FTOI:
044A E0BE LDI R27,0xE
044B C001 RJMP 0x044D
FTOL:
044C E1BE LDI R27,0x1E
044D 940E058A CALL unpackfacc1
044F F069 BEQ 0x045D
0450 1BB3 SUB R27,R19
0451 F009 BEQ 0x0453
0452 F472 BPL 0x0461
0453 2388 TST R24
0454 F022 BMI 0x0459
0455 E010 LDI R17,0
0456 EB0D LDI R16,0xBD
0457 940C041F JMP lpm32
0459 E010 LDI R17,0
045A EC03 LDI R16,0xC3
045B 940C041F JMP lpm32
045D E010 LDI R17,0
045E EC01 LDI R16,0xC1
045F 940C041F JMP lpm32
0461 9533 INC R19
0462 F3D2 BMI 0x045D
0463 E030 LDI R19,0
0464 50B8 SUBI R27,0x8
0465 F452 BPL 0x0470
0466 5FB8 SUBI R27,0xF8
0467 2F32 MOV R19,R18
0468 2F21 MOV R18,R17
0469 2F10 MOV R17,R16
046A E800 LDI R16,0x80
046B C006 RJMP 0x0472
046C 2F01 MOV R16,R17
046D 2F12 MOV R17,R18
046E E020 LDI R18,0
046F 50B8 SUBI R27,0x8
0470 30B8 CPI R27,0x8
0471 F7D0 BCC 0x046C
0472 23BB TST R27
0473 F031 BEQ 0x047A
0474 9536 LSR R19
0475 9527 ROR R18
0476 9517 ROR R17
0477 9507 ROR R16
0478 95BA DEC R27
0479 F7D1 BNE 0x0474
047A 9508 RET
save_floatregs:
047B 92DA ST R13,-Y
047C 92EA ST R14,-Y
047D 92FA ST R15,-Y
047E 938A ST R24,-Y
047F 922A ST R2,-Y
0480 923A ST R3,-Y
0481 924A ST R4,-Y
0482 939A ST R25,-Y
0483 93AA ST R26,-Y
0484 93BA ST R27,-Y
0485 9508 RET
restore_floatregs:
0486 91B9 LD R27,Y+
0487 91A9 LD R26,Y+
0488 9199 LD R25,Y+
0489 9049 LD R4,Y+
048A 9039 LD R3,Y+
048B 9029 LD R2,Y+
048C 9189 LD R24,Y+
048D 90F9 LD R15,Y+
048E 90E9 LD R14,Y+
048F 90D9 LD R13,Y+
0490 9508 RET
stk2arg1:
0491 842A LDD R2,Y+10
0492 843B LDD R3,Y+11
0493 844C LDD R4,Y+12
0494 859D LDD R25,Y+13
0495 9508 RET
stk2arg0:
0496 850E LDD R16,Y+14
0497 851F LDD R17,Y+15
0498 8928 LDD R18,Y+16
0499 8939 LDD R19,Y+17
049A 9508 RET
float_epilog:
049B DFEA RCALL restore_floatregs
049C 920F PUSH R0
049D B60F IN R0,0x3F
049E 9628 ADIW R28,0x8
049F BE0F OUT 0x3F,R0
04A0 900F POP R0
04A1 9508 RET
float_prolog:
04A2 DFD8 RCALL save_floatregs
04A3 DFF2 RCALL stk2arg0
04A4 CFEC RJMP stk2arg1
add32fs:
04A5 D002 RCALL add32f
04A6 940C03D3 JMP push_arg4
add32f:
04A8 940E04A2 CALL float_prolog
04AA D012 RCALL FADD
04AB 940C049B JMP float_epilog
sub32fs:
04AD D002 RCALL sub32f
04AE 940C03D3 JMP push_arg4
sub32f:
04B0 940E04A2 CALL float_prolog
04B2 D009 RCALL FSUB
04B3 940C049B JMP float_epilog
fret2:
04B5 2F8A MOV R24,R26
04B6 2F39 MOV R19,R25
04B7 2D24 MOV R18,R4
04B8 2D13 MOV R17,R3
04B9 2D02 MOV R16,R2
04BA 940C05CA JMP repack
FSUB:
04BC 5890 SUBI R25,0x80
FADD:
04BD 940E05B8 CALL unpack
04BF 3890 CPI R25,0x80
04C0 F3C9 BEQ 0x04BA
04C1 3830 CPI R19,0x80
04C2 F391 BEQ 0x04B5
04C3 2FB3 MOV R27,R19
04C4 1BB9 SUB R27,R25
04C5 F3A3 BVS 0x04BA
04C6 F02A BMI 0x04CC
04C7 F439 BNE 0x04CF
04C8 1502 CP R16,R2
04C9 0513 CPC R17,R3
04CA 0524 CPC R18,R4
04CB F418 BCC 0x04CF
04CC 940E05AC CALL swapacc
04CE CFF4 RJMP 0x04C3
04CF 31B8 CPI R27,0x18
04D0 F018 BCS 0x04D4
04D1 2422 CLR R2
04D2 2433 CLR R3
04D3 2444 CLR R4
04D4 30B8 CPI R27,0x8
04D5 F028 BCS 0x04DB
04D6 2C23 MOV R2,R3
04D7 2C34 MOV R3,R4
04D8 2444 CLR R4
04D9 50B8 SUBI R27,0x8
04DA CFF9 RJMP 0x04D4
04DB 23BB TST R27
04DC F029 BEQ 0x04E2
04DD 9446 LSR R4
04DE 9437 ROR R3
04DF 9427 ROR R2
04E0 95BA DEC R27
04E1 F7D9 BNE 0x04DD
04E2 2FB8 MOV R27,R24
04E3 27BA EOR R27,R26
04E4 F04A BMI 0x04EE
04E5 D018 RCALL 0x04FE
04E6 F698 BCC 0x04BA
04E7 9527 ROR R18
04E8 9517 ROR R17
04E9 9507 ROR R16
04EA 5F3F SUBI R19,0xFF
04EB F673 BVC 0x04BA
04EC 940C0599 JMP maxres
04EE D013 RCALL usub24
04EF F411 BNE 0x04F2
04F0 940C05A0 JMP minres
04F2 F410 BCC 0x04F5
04F3 940E0593 CALL negmant
04F5 2322 TST R18
04F6 F21A BMI 0x04BA
04F7 0F00 LSL R16
04F8 1F11 ROL R17
04F9 1F22 ROL R18
04FA 5031 SUBI R19,1
04FB F7CB BVC 0x04F5
04FC 940C0599 JMP maxres
04FE 0D02 ADD R16,R2
04FF 1D13 ADC R17,R3
0500 1D24 ADC R18,R4
0501 9508 RET
usub24:
0502 1902 SUB R16,R2
0503 0913 SBC R17,R3
0504 0924 SBC R18,R4
0505 9508 RET
cmp32f:
0506 940E04A2 CALL float_prolog
0508 D002 RCALL FLTCP
0509 940C049B JMP float_epilog
FLTCP:
050B D002 RCALL 0x050E
050C 23BB TST R27
050D 9508 RET
050E 2333 TST R19
050F F082 BMI 0x0520
0510 2399 TST R25
0511 F042 BMI 0x051A
0512 1739 CP R19,R25
0513 F040 BCS 0x051C
0514 F429 BNE 0x051A
0515 1502 CP R16,R2
0516 0513 CPC R17,R3
0517 0524 CPC R18,R4
0518 F018 BCS 0x051C
0519 F021 BEQ 0x051E
051A E0B1 LDI R27,1
051B 9508 RET
051C EFBF LDI R27,0xFF
051D 9508 RET
051E 27BB CLR R27
051F 9508 RET
0520 2399 TST R25
0521 F7D2 BPL 0x051C
0522 1739 CP R19,R25
0523 F3B0 BCS 0x051A
0524 F7B9 BNE 0x051C
0525 1502 CP R16,R2
0526 0513 CPC R17,R3
0527 0524 CPC R18,R4
0528 F388 BCS 0x051A
0529 F3A1 BEQ 0x051E
052A CFF1 RJMP 0x051C
052B E7BF LDI R27,0x7F
052C 2F3B MOV R19,R27
052D 2B2B OR R18,R27
052E EF0F LDI R16,0xFF
052F EF1F LDI R17,0xFF
0530 9508 RET
0531 2700 CLR R16
0532 2711 CLR R17
0533 2722 CLR R18
0534 2733 CLR R19
0535 2788 CLR R24
0536 9508 RET
empy32fs:
0537 D002 RCALL empy32f
0538 940C03D3 JMP push_arg4
empy32f:
053A 940E04A2 CALL float_prolog
053C 920F PUSH R0
053D 92CF PUSH R12
053E D004 RCALL eFMUL
053F 90CF POP R12
0540 900F POP R0
0541 940C049B JMP float_epilog
eFMUL:
0543 940E05B8 CALL unpack
0545 F359 BEQ 0x0531
0546 3890 CPI R25,0x80
0547 F349 BEQ 0x0531
0548 278A EOR R24,R26
0549 9408 BSET 0
054A 1F39 ADC R19,R25
054B F2FB BVS 0x052B
054C D00E RCALL eumul24
054D 2D2F MOV R18,R15
054E 2D1E MOV R17,R14
054F 2D0D MOV R16,R13
0550 2322 TST R18
0551 F02A BMI 0x0557
0552 953A DEC R19
0553 0CCC LSL R12
0554 1F00 ROL R16
0555 1F11 ROL R17
0556 1F22 ROL R18
0557 5F3F SUBI R19,0xFF
0558 F293 BVS 0x052B
0559 940C05CA JMP repack
eumul24:
055B 9D22 MUL R18,R2
055C 2CC0 MOV R12,R0
055D 2CD1 MOV R13,R1
055E 9D24 MUL R18,R4
055F 2CE0 MOV R14,R0
0560 2CF1 MOV R15,R1
0561 9D12 MUL R17,R2
0562 0CC1 ADD R12,R1
0563 1EDB ADC R13,R27
0564 1EEB ADC R14,R27
0565 1EFB ADC R15,R27
0566 9D03 MUL R16,R3
0567 0CC1 ADD R12,R1
0568 1EDB ADC R13,R27
0569 1EEB ADC R14,R27
056A 1EFB ADC R15,R27
056B 9D13 MUL R17,R3
056C 0CC0 ADD R12,R0
056D 1CD1 ADC R13,R1
056E 1EEB ADC R14,R27
056F 1EFB ADC R15,R27
0570 9D04 MUL R16,R4
0571 0CC0 ADD R12,R0
0572 1CD1 ADC R13,R1
0573 1EEB ADC R14,R27
0574 1EFB ADC R15,R27
0575 9D23 MUL R18,R3
0576 0CD0 ADD R13,R0
0577 1CE1 ADC R14,R1
0578 1EFB ADC R15,R27
0579 9D14 MUL R17,R4
057A 0CD0 ADD R13,R0
057B 1CE1 ADC R14,R1
057C 1EFB ADC R15,R27
057D 20CC TST R12
057E F422 BPL 0x0583
057F 9488 BCLR 0
0580 1EDB ADC R13,R27
0581 1EEB ADC R14,R27
0582 1EFB ADC R15,R27
0583 9508 RET
savfacc1:
0584 938A ST R24,-Y
0585 93BA ST R27,-Y
0586 9508 RET
restorefacc1:
0587 91B9 LD R27,Y+
0588 9189 LD R24,Y+
0589 9508 RET
unpackfacc1:
058A 2F83 MOV R24,R19
058B 7880 ANDI R24,0x80
058C 0F22 LSL R18
058D 1F33 ROL R19
058E 5830 SUBI R19,0x80
058F 9408 BSET 0
0590 9527 ROR R18
0591 3830 CPI R19,0x80
0592 9508 RET
negmant:
0593 9510 COM R17
0594 9520 COM R18
0595 9501 NEG R16
0596 4F1F SBCI R17,0xFF
0597 4F2F SBCI R18,0xFF
0598 9508 RET
maxres:
0599 E7BF LDI R27,0x7F
059A 2F3B MOV R19,R27
059B 2B2B OR R18,R27
059C EFBF LDI R27,0xFF
059D 2F0B MOV R16,R27
059E 2F1B MOV R17,R27
059F 9508 RET
minres:
05A0 2700 CLR R16
05A1 2711 CLR R17
05A2 2722 CLR R18
05A3 2733 CLR R19
05A4 2788 CLR R24
05A5 9508 RET
ac1toac2:
05A6 2F93 MOV R25,R19
05A7 2E20 MOV R2,R16
05A8 2E31 MOV R3,R17
05A9 2E42 MOV R4,R18
05AA 2FA8 MOV R26,R24
05AB 9508 RET
swapacc:
05AC 922A ST R2,-Y
05AD 923A ST R3,-Y
05AE 924A ST R4,-Y
05AF 939A ST R25,-Y
05B0 93AA ST R26,-Y
05B1 DFF4 RCALL ac1toac2
05B2 9189 LD R24,Y+
05B3 9139 LD R19,Y+
05B4 9129 LD R18,Y+
05B5 9119 LD R17,Y+
05B6 9109 LD R16,Y+
05B7 9508 RET
unpack:
05B8 2F83 MOV R24,R19
05B9 E8B0 LDI R27,0x80
05BA 0F22 LSL R18
05BB 1F33 ROL R19
05BC 273B EOR R19,R27
05BD 0FBB LSL R27
05BE 9527 ROR R18
05BF 7880 ANDI R24,0x80
05C0 2FA9 MOV R26,R25
05C1 E8B0 LDI R27,0x80
05C2 0C44 LSL R4
05C3 1F99 ROL R25
05C4 279B EOR R25,R27
05C5 0FBB LSL R27
05C6 9447 ROR R4
05C7 78A0 ANDI R26,0x80
05C8 3830 CPI R19,0x80
05C9 9508 RET
repack:
05CA 0F22 LSL R18
05CB E8B0 LDI R27,0x80
05CC 27B3 EOR R27,R19
05CD 0F88 LSL R24
05CE 95B7 ROR R27
05CF 9527 ROR R18
05D0 2F3B MOV R19,R27
05D1 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -