📄 hc595.lst
字号:
0471 940C05BE JMP restorefacc1
nojump1:
0473 9510 COM R17
0474 9501 NEG R16
0475 4F1F SBCI R17,0xFF
0476 940C05BE JMP restorefacc1
fp2long:
0478 940E05BB CALL savfacc1
047A D008 RCALL FTOL
047B FF87 SBRS R24,7
047C C002 RJMP nojump2
047D 940E044D CALL neg32
nojump2:
047F 940C05BE JMP restorefacc1
FTOI:
0481 E0BE LDI R27,0xE
0482 C001 RJMP 0x0484
FTOL:
0483 E1BE LDI R27,0x1E
0484 940E05C1 CALL unpackfacc1
0486 F069 BEQ 0x0494
0487 1BB3 SUB R27,R19
0488 F009 BEQ 0x048A
0489 F472 BPL 0x0498
048A 2388 TST R24
048B F022 BMI 0x0490
048C E010 LDI R17,0
048D EB0D LDI R16,0xBD
048E 940C0456 JMP lpm32
0490 E010 LDI R17,0
0491 EC03 LDI R16,0xC3
0492 940C0456 JMP lpm32
0494 E010 LDI R17,0
0495 EC01 LDI R16,0xC1
0496 940C0456 JMP lpm32
0498 9533 INC R19
0499 F3D2 BMI 0x0494
049A E030 LDI R19,0
049B 50B8 SUBI R27,0x8
049C F452 BPL 0x04A7
049D 5FB8 SUBI R27,0xF8
049E 2F32 MOV R19,R18
049F 2F21 MOV R18,R17
04A0 2F10 MOV R17,R16
04A1 E800 LDI R16,0x80
04A2 C006 RJMP 0x04A9
04A3 2F01 MOV R16,R17
04A4 2F12 MOV R17,R18
04A5 E020 LDI R18,0
04A6 50B8 SUBI R27,0x8
04A7 30B8 CPI R27,0x8
04A8 F7D0 BCC 0x04A3
04A9 23BB TST R27
04AA F031 BEQ 0x04B1
04AB 9536 LSR R19
04AC 9527 ROR R18
04AD 9517 ROR R17
04AE 9507 ROR R16
04AF 95BA DEC R27
04B0 F7D1 BNE 0x04AB
04B1 9508 RET
save_floatregs:
04B2 92DA ST R13,-Y
04B3 92EA ST R14,-Y
04B4 92FA ST R15,-Y
04B5 938A ST R24,-Y
04B6 922A ST R2,-Y
04B7 923A ST R3,-Y
04B8 924A ST R4,-Y
04B9 939A ST R25,-Y
04BA 93AA ST R26,-Y
04BB 93BA ST R27,-Y
04BC 9508 RET
restore_floatregs:
04BD 91B9 LD R27,Y+
04BE 91A9 LD R26,Y+
04BF 9199 LD R25,Y+
04C0 9049 LD R4,Y+
04C1 9039 LD R3,Y+
04C2 9029 LD R2,Y+
04C3 9189 LD R24,Y+
04C4 90F9 LD R15,Y+
04C5 90E9 LD R14,Y+
04C6 90D9 LD R13,Y+
04C7 9508 RET
stk2arg1:
04C8 842A LDD R2,Y+10
04C9 843B LDD R3,Y+11
04CA 844C LDD R4,Y+12
04CB 859D LDD R25,Y+13
04CC 9508 RET
stk2arg0:
04CD 850E LDD R16,Y+14
04CE 851F LDD R17,Y+15
04CF 8928 LDD R18,Y+16
04D0 8939 LDD R19,Y+17
04D1 9508 RET
float_epilog:
04D2 DFEA RCALL restore_floatregs
04D3 920F PUSH R0
04D4 B60F IN R0,0x3F
04D5 9628 ADIW R28,0x8
04D6 BE0F OUT 0x3F,R0
04D7 900F POP R0
04D8 9508 RET
float_prolog:
04D9 DFD8 RCALL save_floatregs
04DA DFF2 RCALL stk2arg0
04DB CFEC RJMP stk2arg1
add32fs:
04DC D002 RCALL add32f
04DD 940C040A JMP push_arg4
add32f:
04DF 940E04D9 CALL float_prolog
04E1 D012 RCALL FADD
04E2 940C04D2 JMP float_epilog
sub32fs:
04E4 D002 RCALL sub32f
04E5 940C040A JMP push_arg4
sub32f:
04E7 940E04D9 CALL float_prolog
04E9 D009 RCALL FSUB
04EA 940C04D2 JMP float_epilog
fret2:
04EC 2F8A MOV R24,R26
04ED 2F39 MOV R19,R25
04EE 2D24 MOV R18,R4
04EF 2D13 MOV R17,R3
04F0 2D02 MOV R16,R2
04F1 940C0601 JMP repack
FSUB:
04F3 5890 SUBI R25,0x80
FADD:
04F4 940E05EF CALL unpack
04F6 3890 CPI R25,0x80
04F7 F3C9 BEQ 0x04F1
04F8 3830 CPI R19,0x80
04F9 F391 BEQ 0x04EC
04FA 2FB3 MOV R27,R19
04FB 1BB9 SUB R27,R25
04FC F3A3 BVS 0x04F1
04FD F02A BMI 0x0503
04FE F439 BNE 0x0506
04FF 1502 CP R16,R2
0500 0513 CPC R17,R3
0501 0524 CPC R18,R4
0502 F418 BCC 0x0506
0503 940E05E3 CALL swapacc
0505 CFF4 RJMP 0x04FA
0506 31B8 CPI R27,0x18
0507 F018 BCS 0x050B
0508 2422 CLR R2
0509 2433 CLR R3
050A 2444 CLR R4
050B 30B8 CPI R27,0x8
050C F028 BCS 0x0512
050D 2C23 MOV R2,R3
050E 2C34 MOV R3,R4
050F 2444 CLR R4
0510 50B8 SUBI R27,0x8
0511 CFF9 RJMP 0x050B
0512 23BB TST R27
0513 F029 BEQ 0x0519
0514 9446 LSR R4
0515 9437 ROR R3
0516 9427 ROR R2
0517 95BA DEC R27
0518 F7D9 BNE 0x0514
0519 2FB8 MOV R27,R24
051A 27BA EOR R27,R26
051B F04A BMI 0x0525
051C D018 RCALL 0x0535
051D F698 BCC 0x04F1
051E 9527 ROR R18
051F 9517 ROR R17
0520 9507 ROR R16
0521 5F3F SUBI R19,0xFF
0522 F673 BVC 0x04F1
0523 940C05D0 JMP maxres
0525 D013 RCALL usub24
0526 F411 BNE 0x0529
0527 940C05D7 JMP minres
0529 F410 BCC 0x052C
052A 940E05CA CALL negmant
052C 2322 TST R18
052D F21A BMI 0x04F1
052E 0F00 LSL R16
052F 1F11 ROL R17
0530 1F22 ROL R18
0531 5031 SUBI R19,1
0532 F7CB BVC 0x052C
0533 940C05D0 JMP maxres
0535 0D02 ADD R16,R2
0536 1D13 ADC R17,R3
0537 1D24 ADC R18,R4
0538 9508 RET
usub24:
0539 1902 SUB R16,R2
053A 0913 SBC R17,R3
053B 0924 SBC R18,R4
053C 9508 RET
cmp32f:
053D 940E04D9 CALL float_prolog
053F D002 RCALL FLTCP
0540 940C04D2 JMP float_epilog
FLTCP:
0542 D002 RCALL 0x0545
0543 23BB TST R27
0544 9508 RET
0545 2333 TST R19
0546 F082 BMI 0x0557
0547 2399 TST R25
0548 F042 BMI 0x0551
0549 1739 CP R19,R25
054A F040 BCS 0x0553
054B F429 BNE 0x0551
054C 1502 CP R16,R2
054D 0513 CPC R17,R3
054E 0524 CPC R18,R4
054F F018 BCS 0x0553
0550 F021 BEQ 0x0555
0551 E0B1 LDI R27,1
0552 9508 RET
0553 EFBF LDI R27,0xFF
0554 9508 RET
0555 27BB CLR R27
0556 9508 RET
0557 2399 TST R25
0558 F7D2 BPL 0x0553
0559 1739 CP R19,R25
055A F3B0 BCS 0x0551
055B F7B9 BNE 0x0553
055C 1502 CP R16,R2
055D 0513 CPC R17,R3
055E 0524 CPC R18,R4
055F F388 BCS 0x0551
0560 F3A1 BEQ 0x0555
0561 CFF1 RJMP 0x0553
0562 E7BF LDI R27,0x7F
0563 2F3B MOV R19,R27
0564 2B2B OR R18,R27
0565 EF0F LDI R16,0xFF
0566 EF1F LDI R17,0xFF
0567 9508 RET
0568 2700 CLR R16
0569 2711 CLR R17
056A 2722 CLR R18
056B 2733 CLR R19
056C 2788 CLR R24
056D 9508 RET
empy32fs:
056E D002 RCALL empy32f
056F 940C040A JMP push_arg4
empy32f:
0571 940E04D9 CALL float_prolog
0573 920F PUSH R0
0574 92CF PUSH R12
0575 D004 RCALL eFMUL
0576 90CF POP R12
0577 900F POP R0
0578 940C04D2 JMP float_epilog
eFMUL:
057A 940E05EF CALL unpack
057C F359 BEQ 0x0568
057D 3890 CPI R25,0x80
057E F349 BEQ 0x0568
057F 278A EOR R24,R26
0580 9408 BSET 0
0581 1F39 ADC R19,R25
0582 F2FB BVS 0x0562
0583 D00E RCALL eumul24
0584 2D2F MOV R18,R15
0585 2D1E MOV R17,R14
0586 2D0D MOV R16,R13
0587 2322 TST R18
0588 F02A BMI 0x058E
0589 953A DEC R19
058A 0CCC LSL R12
058B 1F00 ROL R16
058C 1F11 ROL R17
058D 1F22 ROL R18
058E 5F3F SUBI R19,0xFF
058F F293 BVS 0x0562
0590 940C0601 JMP repack
eumul24:
0592 9D22 MUL R18,R2
0593 2CC0 MOV R12,R0
0594 2CD1 MOV R13,R1
0595 9D24 MUL R18,R4
0596 2CE0 MOV R14,R0
0597 2CF1 MOV R15,R1
0598 9D12 MUL R17,R2
0599 0CC1 ADD R12,R1
059A 1EDB ADC R13,R27
059B 1EEB ADC R14,R27
059C 1EFB ADC R15,R27
059D 9D03 MUL R16,R3
059E 0CC1 ADD R12,R1
059F 1EDB ADC R13,R27
05A0 1EEB ADC R14,R27
05A1 1EFB ADC R15,R27
05A2 9D13 MUL R17,R3
05A3 0CC0 ADD R12,R0
05A4 1CD1 ADC R13,R1
05A5 1EEB ADC R14,R27
05A6 1EFB ADC R15,R27
05A7 9D04 MUL R16,R4
05A8 0CC0 ADD R12,R0
05A9 1CD1 ADC R13,R1
05AA 1EEB ADC R14,R27
05AB 1EFB ADC R15,R27
05AC 9D23 MUL R18,R3
05AD 0CD0 ADD R13,R0
05AE 1CE1 ADC R14,R1
05AF 1EFB ADC R15,R27
05B0 9D14 MUL R17,R4
05B1 0CD0 ADD R13,R0
05B2 1CE1 ADC R14,R1
05B3 1EFB ADC R15,R27
05B4 20CC TST R12
05B5 F422 BPL 0x05BA
05B6 9488 BCLR 0
05B7 1EDB ADC R13,R27
05B8 1EEB ADC R14,R27
05B9 1EFB ADC R15,R27
05BA 9508 RET
savfacc1:
05BB 938A ST R24,-Y
05BC 93BA ST R27,-Y
05BD 9508 RET
restorefacc1:
05BE 91B9 LD R27,Y+
05BF 9189 LD R24,Y+
05C0 9508 RET
unpackfacc1:
05C1 2F83 MOV R24,R19
05C2 7880 ANDI R24,0x80
05C3 0F22 LSL R18
05C4 1F33 ROL R19
05C5 5830 SUBI R19,0x80
05C6 9408 BSET 0
05C7 9527 ROR R18
05C8 3830 CPI R19,0x80
05C9 9508 RET
negmant:
05CA 9510 COM R17
05CB 9520 COM R18
05CC 9501 NEG R16
05CD 4F1F SBCI R17,0xFF
05CE 4F2F SBCI R18,0xFF
05CF 9508 RET
maxres:
05D0 E7BF LDI R27,0x7F
05D1 2F3B MOV R19,R27
05D2 2B2B OR R18,R27
05D3 EFBF LDI R27,0xFF
05D4 2F0B MOV R16,R27
05D5 2F1B MOV R17,R27
05D6 9508 RET
minres:
05D7 2700 CLR R16
05D8 2711 CLR R17
05D9 2722 CLR R18
05DA 2733 CLR R19
05DB 2788 CLR R24
05DC 9508 RET
ac1toac2:
05DD 2F93 MOV R25,R19
05DE 2E20 MOV R2,R16
05DF 2E31 MOV R3,R17
05E0 2E42 MOV R4,R18
05E1 2FA8 MOV R26,R24
05E2 9508 RET
swapacc:
05E3 922A ST R2,-Y
05E4 923A ST R3,-Y
05E5 924A ST R4,-Y
05E6 939A ST R25,-Y
05E7 93AA ST R26,-Y
05E8 DFF4 RCALL ac1toac2
05E9 9189 LD R24,Y+
05EA 9139 LD R19,Y+
05EB 9129 LD R18,Y+
05EC 9119 LD R17,Y+
05ED 9109 LD R16,Y+
05EE 9508 RET
unpack:
05EF 2F83 MOV R24,R19
05F0 E8B0 LDI R27,0x80
05F1 0F22 LSL R18
05F2 1F33 ROL R19
05F3 273B EOR R19,R27
05F4 0FBB LSL R27
05F5 9527 ROR R18
05F6 7880 ANDI R24,0x80
05F7 2FA9 MOV R26,R25
05F8 E8B0 LDI R27,0x80
05F9 0C44 LSL R4
05FA 1F99 ROL R25
05FB 279B EOR R25,R27
05FC 0FBB LSL R27
05FD 9447 ROR R4
05FE 78A0 ANDI R26,0x80
05FF 3830 CPI R19,0x80
0600 9508 RET
repack:
0601 0F22 LSL R18
0602 E8B0 LDI R27,0x80
0603 27B3 EOR R27,R19
0604 0F88 LSL R24
0605 95B7 ROR R27
0606 9527 ROR R18
0607 2F3B MOV R19,R27
0608 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -