📄 lc.lst
字号:
04B1 9F03 MUL R16,R19
04B2 0D90 ADD R25,R0
04B3 018C MOVW R16,R24
04B4 9199 LD R25,Y+
04B5 9189 LD R24,Y+
04B6 9019 LD R1,Y+
04B7 9009 LD R0,Y+
04B8 9508 RET
empy32u:
empy32s:
04B9 940E051D CALL long_prolog
04BB 927F PUSH R7
04BC 940E0536 CALL tstzero1
04BE F139 BEQ 0x04E6
04BF 2477 CLR R7
04C0 940E053C CALL tstzero2
04C2 F419 BNE 0x04C6
04C3 018C MOVW R16,R24
04C4 019D MOVW R18,R26
04C5 C020 RJMP 0x04E6
04C6 9F08 MUL R16,R24
04C7 2CB0 MOV R11,R0
04C8 2CA1 MOV R10,R1
04C9 9F28 MUL R18,R24
04CA 2C90 MOV R9,R0
04CB 2C81 MOV R8,R1
04CC 9F18 MUL R17,R24
04CD 0CA0 ADD R10,R0
04CE 1C91 ADC R9,R1
04CF 1C87 ADC R8,R7
04D0 9F09 MUL R16,R25
04D1 0CA0 ADD R10,R0
04D2 1C91 ADC R9,R1
04D3 1C87 ADC R8,R7
04D4 9F19 MUL R17,R25
04D5 0C90 ADD R9,R0
04D6 1C81 ADC R8,R1
04D7 9F0A MUL R16,R26
04D8 0C90 ADD R9,R0
04D9 1C81 ADC R8,R1
04DA 9F38 MUL R19,R24
04DB 0C80 ADD R8,R0
04DC 9F29 MUL R18,R25
04DD 0C80 ADD R8,R0
04DE 9F1A MUL R17,R26
04DF 0C80 ADD R8,R0
04E0 9F0B MUL R16,R27
04E1 0C80 ADD R8,R0
04E2 2D0B MOV R16,R11
04E3 2D1A MOV R17,R10
04E4 2D29 MOV R18,R9
04E5 2D38 MOV R19,R8
04E6 907F POP R7
04E7 940C052B JMP long_epilog
pop_gset2:
04E9 E0E2 LDI R30,2
04EA 940C0501 JMP pop
pop_gset3:
04EC E0E4 LDI R30,4
04ED 940C0501 JMP pop
pop_gset4:
04EF E0E8 LDI R30,0x8
04F0 940C0501 JMP pop
pop_gset5:
04F2 27EE CLR R30
04F3 940C0501 JMP pop
push_gset5:
04F5 92FA ST R15,-Y
04F6 92EA ST R14,-Y
push_gset4:
04F7 92DA ST R13,-Y
04F8 92CA ST R12,-Y
push_gset3:
04F9 92BA ST R11,-Y
04FA 92AA ST R10,-Y
push_gset2:
04FB 937A ST R23,-Y
04FC 936A ST R22,-Y
push_gset1:
04FD 935A ST R21,-Y
04FE 934A ST R20,-Y
04FF 9508 RET
pop_gset1:
0500 E0E1 LDI R30,1
pop:
0501 9149 LD R20,Y+
0502 9159 LD R21,Y+
0503 FDE0 SBRC R30,0
0504 9508 RET
0505 9169 LD R22,Y+
0506 9179 LD R23,Y+
0507 FDE1 SBRC R30,1
0508 9508 RET
0509 90A9 LD R10,Y+
050A 90B9 LD R11,Y+
050B FDE2 SBRC R30,2
050C 9508 RET
050D 90C9 LD R12,Y+
050E 90D9 LD R13,Y+
050F FDE3 SBRC R30,3
0510 9508 RET
0511 90E9 LD R14,Y+
0512 90F9 LD R15,Y+
0513 9508 RET
neg32:
0514 9500 COM R16
0515 9510 COM R17
0516 9520 COM R18
0517 9530 COM R19
0518 5F0F SUBI R16,0xFF
0519 4F1F SBCI R17,0xFF
051A 4F2F SBCI R18,0xFF
051B 4F3F SBCI R19,0xFF
051C 9508 RET
long_prolog:
051D 928A ST R8,-Y
051E 929A ST R9,-Y
051F 92AA ST R10,-Y
0520 92BA ST R11,-Y
0521 93EA ST R30,-Y
0522 938A ST R24,-Y
0523 939A ST R25,-Y
0524 93AA ST R26,-Y
0525 93BA ST R27,-Y
0526 8589 LDD R24,Y+9
0527 859A LDD R25,Y+10
0528 85AB LDD R26,Y+11
0529 85BC LDD R27,Y+12
052A 9508 RET
long_epilog:
052B 91B9 LD R27,Y+
052C 91A9 LD R26,Y+
052D 9199 LD R25,Y+
052E 9189 LD R24,Y+
052F 91E9 LD R30,Y+
0530 90B9 LD R11,Y+
0531 90A9 LD R10,Y+
0532 9099 LD R9,Y+
0533 9089 LD R8,Y+
0534 9624 ADIW R28,4
0535 9508 RET
tstzero1:
0536 27EE CLR R30
0537 2BE0 OR R30,R16
0538 2BE1 OR R30,R17
0539 2BE2 OR R30,R18
053A 2BE3 OR R30,R19
053B 9508 RET
tstzero2:
053C 27EE CLR R30
053D 2BE8 OR R30,R24
053E 2BE9 OR R30,R25
053F 2BEA OR R30,R26
0540 2BEB OR R30,R27
0541 9508 RET
lpm32:
0542 93EA ST R30,-Y
0543 93FA ST R31,-Y
0544 920A ST R0,-Y
0545 2FE0 MOV R30,R16
0546 2FF1 MOV R31,R17
0547 95C8 LPM
0548 2D00 MOV R16,R0
0549 9631 ADIW R30,1
054A 95C8 LPM
054B 2D10 MOV R17,R0
054C 9631 ADIW R30,1
054D 95C8 LPM
054E 2D20 MOV R18,R0
054F 9631 ADIW R30,1
0550 95C8 LPM
0551 2D30 MOV R19,R0
0552 9009 LD R0,Y+
0553 91F9 LD R31,Y+
0554 91E9 LD R30,Y+
0555 9508 RET
push_lset:
0556 93FA ST R31,-Y
0557 93EA ST R30,-Y
0558 93BA ST R27,-Y
0559 93AA ST R26,-Y
055A 939A ST R25,-Y
055B 938A ST R24,-Y
055C 933A ST R19,-Y
055D 932A ST R18,-Y
055E 931A ST R17,-Y
055F 930A ST R16,-Y
0560 929A ST R9,-Y
0561 928A ST R8,-Y
0562 927A ST R7,-Y
0563 926A ST R6,-Y
0564 925A ST R5,-Y
0565 924A ST R4,-Y
0566 923A ST R3,-Y
0567 922A ST R2,-Y
0568 921A ST R1,-Y
0569 920A ST R0,-Y
056A B60F IN R0,0x3F
056B 920A ST R0,-Y
056C 9508 RET
pop_lset:
056D 9009 LD R0,Y+
056E BE0F OUT 0x3F,R0
056F 9009 LD R0,Y+
0570 9019 LD R1,Y+
0571 9029 LD R2,Y+
0572 9039 LD R3,Y+
0573 9049 LD R4,Y+
0574 9059 LD R5,Y+
0575 9069 LD R6,Y+
0576 9079 LD R7,Y+
0577 9089 LD R8,Y+
0578 9099 LD R9,Y+
0579 9109 LD R16,Y+
057A 9119 LD R17,Y+
057B 9129 LD R18,Y+
057C 9139 LD R19,Y+
057D 9189 LD R24,Y+
057E 9199 LD R25,Y+
057F 91A9 LD R26,Y+
0580 91B9 LD R27,Y+
0581 91E9 LD R30,Y+
0582 91F9 LD R31,Y+
0583 9508 RET
fp2int:
0584 940E0762 CALL savfacc1
0586 D014 RCALL FTOI
0587 2F02 MOV R16,R18
0588 2F13 MOV R17,R19
0589 FD87 SBRC R24,7
058A C002 RJMP nojump1
058B 940C0765 JMP restorefacc1
nojump1:
058D 9510 COM R17
058E 9501 NEG R16
058F 4F1F SBCI R17,0xFF
0590 940C0765 JMP restorefacc1
fp2long:
0592 940E0762 CALL savfacc1
0594 D008 RCALL FTOL
0595 FF87 SBRS R24,7
0596 C002 RJMP nojump2
0597 940E0514 CALL neg32
nojump2:
0599 940C0765 JMP restorefacc1
FTOI:
059B E0BE LDI R27,0xE
059C C001 RJMP 0x059E
FTOL:
059D E1BE LDI R27,0x1E
059E 940E0768 CALL unpackfacc1
05A0 F069 BEQ 0x05AE
05A1 1BB3 SUB R27,R19
05A2 F009 BEQ 0x05A4
05A3 F472 BPL 0x05B2
05A4 2388 TST R24
05A5 F022 BMI 0x05AA
05A6 E010 LDI R17,0
05A7 E60C LDI R16,0x6C
05A8 940C0542 JMP lpm32
05AA E010 LDI R17,0
05AB E702 LDI R16,0x72
05AC 940C0542 JMP lpm32
05AE E010 LDI R17,0
05AF E700 LDI R16,0x70
05B0 940C0542 JMP lpm32
05B2 9533 INC R19
05B3 F3D2 BMI 0x05AE
05B4 E030 LDI R19,0
05B5 50B8 SUBI R27,0x8
05B6 F452 BPL 0x05C1
05B7 5FB8 SUBI R27,0xF8
05B8 2F32 MOV R19,R18
05B9 2F21 MOV R18,R17
05BA 2F10 MOV R17,R16
05BB E800 LDI R16,0x80
05BC C006 RJMP 0x05C3
05BD 2F01 MOV R16,R17
05BE 2F12 MOV R17,R18
05BF E020 LDI R18,0
05C0 50B8 SUBI R27,0x8
05C1 30B8 CPI R27,0x8
05C2 F7D0 BCC 0x05BD
05C3 23BB TST R27
05C4 F031 BEQ 0x05CB
05C5 9536 LSR R19
05C6 9527 ROR R18
05C7 9517 ROR R17
05C8 9507 ROR R16
05C9 95BA DEC R27
05CA F7D1 BNE 0x05C5
05CB 9508 RET
int2fp:
05CC 2722 CLR R18
05CD FD17 SBRC R17,7
05CE 9520 COM R18
05CF 2733 CLR R19
05D0 FD27 SBRC R18,7
05D1 9530 COM R19
long2fp:
05D2 940E0762 CALL savfacc1
05D4 D002 RCALL ITOF
05D5 940C0765 JMP restorefacc1
ITOF:
05D7 2788 CLR R24
05D8 2333 TST R19
05D9 F41A BPL 0x05DD
05DA 940E0514 CALL neg32
05DC 9580 COM R24
05DD 2FB0 MOV R27,R16
05DE 2BB1 OR R27,R17
05DF 2BB2 OR R27,R18
05E0 2BB3 OR R27,R19
05E1 F411 BNE 0x05E4
05E2 940C077E JMP minres
05E4 E1B6 LDI R27,0x16
05E5 C005 RJMP itof2
05E6 95B3 INC R27
05E7 9536 LSR R19
05E8 9527 ROR R18
05E9 9517 ROR R17
05EA 9507 ROR R16
itof2:
05EB 2333 TST R19
05EC F7C9 BNE 0x05E6
itof3:
05ED 2322 TST R18
05EE F449 BNE 0x05F8
05EF 50B8 SUBI R27,0x8
05F0 2F21 MOV R18,R17
05F1 2F10 MOV R17,R16
05F2 E000 LDI R16,0
05F3 CFF9 RJMP itof3
05F4 95BA DEC R27
05F5 0F00 LSL R16
05F6 1F11 ROL R17
05F7 1F22 ROL R18
05F8 F7DA BPL 0x05F4
05F9 2F3B MOV R19,R27
05FA 940C07A8 JMP repack
save_floatregs:
05FC 92DA ST R13,-Y
05FD 92EA ST R14,-Y
05FE 92FA ST R15,-Y
05FF 938A ST R24,-Y
0600 922A ST R2,-Y
0601 923A ST R3,-Y
0602 924A ST R4,-Y
0603 939A ST R25,-Y
0604 93AA ST R26,-Y
0605 93BA ST R27,-Y
0606 9508 RET
restore_floatregs:
0607 91B9 LD R27,Y+
0608 91A9 LD R26,Y+
0609 9199 LD R25,Y+
060A 9049 LD R4,Y+
060B 9039 LD R3,Y+
060C 9029 LD R2,Y+
060D 9189 LD R24,Y+
060E 90F9 LD R15,Y+
060F 90E9 LD R14,Y+
0610 90D9 LD R13,Y+
0611 9508 RET
stk2arg1:
0612 842A LDD R2,Y+10
0613 843B LDD R3,Y+11
0614 844C LDD R4,Y+12
0615 859D LDD R25,Y+13
0616 9508 RET
stk2arg0:
0617 850E LDD R16,Y+14
0618 851F LDD R17,Y+15
0619 8928 LDD R18,Y+16
061A 8939 LDD R19,Y+17
061B 9508 RET
float_epilog:
061C DFEA RCALL restore_floatregs
061D 920F PUSH R0
061E B60F IN R0,0x3F
061F 9628 ADIW R28,0x8
0620 BE0F OUT 0x3F,R0
0621 900F POP R0
0622 9508 RET
float_prolog:
0623 DFD8 RCALL save_floatregs
0624 DFF2 RCALL stk2arg0
0625 CFEC RJMP stk2arg1
add32fs:
0626 D002 RCALL add32f
0627 940C046A JMP push_arg4
add32f:
0629 940E0623 CALL float_prolog
062B D012 RCALL FADD
062C 940C061C JMP float_epilog
sub32fs:
062E D002 RCALL sub32f
062F 940C046A JMP push_arg4
sub32f:
0631 940E0623 CALL float_prolog
0633 D009 RCALL FSUB
0634 940C061C JMP float_epilog
fret2:
0636 2F8A MOV R24,R26
0637 2F39 MOV R19,R25
0638 2D24 MOV R18,R4
0639 2D13 MOV R17,R3
063A 2D02 MOV R16,R2
063B 940C07A8 JMP repack
FSUB:
063D 5890 SUBI R25,0x80
FADD:
063E 940E0796 CALL unpack
0640 3890 CPI R25,0x80
0641 F3C9 BEQ 0x063B
0642 3830 CPI R19,0x80
0643 F391 BEQ 0x0636
0644 2FB3 MOV R27,R19
0645 1BB9 SUB R27,R25
0646 F3A3 BVS 0x063B
0647 F02A BMI 0x064D
0648 F439 BNE 0x0650
0649 1502 CP R16,R2
064A 0513 CPC R17,R3
064B 0524 CPC R18,R4
064C F418 BCC 0x0650
064D 940E078A CALL swapacc
064F CFF4 RJMP 0x0644
0650 31B8 CPI R27,0x18
0651 F018 BCS 0x0655
0652 2422 CLR R2
0653 2433 CLR R3
0654 2444 CLR R4
0655 30B8 CPI R27,0x8
0656 F028 BCS 0x065C
0657 2C23 MOV R2,R3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -