📄 motor.lst
字号:
0478 95BA DEC R27
0479 F7D1 BNE 0x0474
047A 9508 RET
int2fp:
047B 2722 CLR R18
047C FD17 SBRC R17,7
047D 9520 COM R18
047E 2733 CLR R19
047F FD27 SBRC R18,7
0480 9530 COM R19
long2fp:
0481 D135 RCALL savfacc1
0482 D001 RCALL ITOF
0483 C136 RJMP restorefacc1
ITOF:
0484 2788 CLR R24
0485 2333 TST R19
0486 F412 BPL 0x0489
0487 DF12 RCALL neg32
0488 9580 COM R24
0489 2FB0 MOV R27,R16
048A 2BB1 OR R27,R17
048B 2BB2 OR R27,R18
048C 2BB3 OR R27,R19
048D F409 BNE 0x048F
048E C144 RJMP minres
048F E1B6 LDI R27,0x16
0490 C005 RJMP 0x0496
0491 95B3 INC R27
0492 9536 LSR R19
0493 9527 ROR R18
0494 9517 ROR R17
0495 9507 ROR R16
0496 2333 TST R19
0497 F7C9 BNE 0x0491
0498 2322 TST R18
0499 F449 BNE 0x04A3
049A 50B8 SUBI R27,0x8
049B 2F21 MOV R18,R17
049C 2F10 MOV R17,R16
049D E000 LDI R16,0
049E CFF9 RJMP 0x0498
049F 95BA DEC R27
04A0 0F00 LSL R16
04A1 1F11 ROL R17
04A2 1F22 ROL R18
04A3 F7DA BPL 0x049F
04A4 2F3B MOV R19,R27
04A5 C157 RJMP repack
save_floatregs:
04A6 92DA ST R13,-Y
04A7 92EA ST R14,-Y
04A8 92FA ST R15,-Y
04A9 938A ST R24,-Y
04AA 922A ST R2,-Y
04AB 923A ST R3,-Y
04AC 924A ST R4,-Y
04AD 939A ST R25,-Y
04AE 93AA ST R26,-Y
04AF 93BA ST R27,-Y
04B0 9508 RET
restore_floatregs:
04B1 91B9 LD R27,Y+
04B2 91A9 LD R26,Y+
04B3 9199 LD R25,Y+
04B4 9049 LD R4,Y+
04B5 9039 LD R3,Y+
04B6 9029 LD R2,Y+
04B7 9189 LD R24,Y+
04B8 90F9 LD R15,Y+
04B9 90E9 LD R14,Y+
04BA 90D9 LD R13,Y+
04BB 9508 RET
stk2arg1:
04BC 842A LDD R2,Y+10
04BD 843B LDD R3,Y+11
04BE 844C LDD R4,Y+12
04BF 859D LDD R25,Y+13
04C0 9508 RET
stk2arg0:
04C1 850E LDD R16,Y+14
04C2 851F LDD R17,Y+15
04C3 8928 LDD R18,Y+16
04C4 8939 LDD R19,Y+17
04C5 9508 RET
float_epilog:
04C6 DFEA RCALL restore_floatregs
04C7 920F PUSH R0
04C8 B60F IN R0,0x3F
04C9 9628 ADIW R28,0x8
04CA BE0F OUT 0x3F,R0
04CB 900F POP R0
04CC 9508 RET
float_prolog:
04CD DFD8 RCALL save_floatregs
04CE DFF2 RCALL stk2arg0
04CF CFEC RJMP stk2arg1
add32fs:
04D0 D001 RCALL add32f
04D1 CE9A RJMP push_arg4
add32f:
04D2 DFFA RCALL float_prolog
04D3 D00D RCALL FADD
04D4 CFF1 RJMP float_epilog
sub32fs:
04D5 D001 RCALL sub32f
04D6 CE95 RJMP push_arg4
sub32f:
04D7 DFF5 RCALL float_prolog
04D8 D007 RCALL FSUB
04D9 CFEC RJMP float_epilog
fret2:
04DA 2F8A MOV R24,R26
04DB 2F39 MOV R19,R25
04DC 2D24 MOV R18,R4
04DD 2D13 MOV R17,R3
04DE 2D02 MOV R16,R2
04DF C11D RJMP repack
FSUB:
04E0 5890 SUBI R25,0x80
FADD:
04E1 D109 RCALL unpack
04E2 3890 CPI R25,0x80
04E3 F3D9 BEQ 0x04DF
04E4 3830 CPI R19,0x80
04E5 F3A1 BEQ 0x04DA
04E6 2FB3 MOV R27,R19
04E7 1BB9 SUB R27,R25
04E8 F3B3 BVS 0x04DF
04E9 F02A BMI 0x04EF
04EA F431 BNE 0x04F1
04EB 1502 CP R16,R2
04EC 0513 CPC R17,R3
04ED 0524 CPC R18,R4
04EE F410 BCC 0x04F1
04EF D0EF RCALL swapacc
04F0 CFF5 RJMP 0x04E6
04F1 31B8 CPI R27,0x18
04F2 F018 BCS 0x04F6
04F3 2422 CLR R2
04F4 2433 CLR R3
04F5 2444 CLR R4
04F6 30B8 CPI R27,0x8
04F7 F028 BCS 0x04FD
04F8 2C23 MOV R2,R3
04F9 2C34 MOV R3,R4
04FA 2444 CLR R4
04FB 50B8 SUBI R27,0x8
04FC CFF9 RJMP 0x04F6
04FD 23BB TST R27
04FE F029 BEQ 0x0504
04FF 9446 LSR R4
0500 9437 ROR R3
0501 9427 ROR R2
0502 95BA DEC R27
0503 F7D9 BNE 0x04FF
0504 2FB8 MOV R27,R24
0505 27BA EOR R27,R26
0506 F042 BMI 0x050F
0507 D014 RCALL 0x051C
0508 F6B0 BCC 0x04DF
0509 9527 ROR R18
050A 9517 ROR R17
050B 9507 ROR R16
050C 5F3F SUBI R19,0xFF
050D F68B BVC 0x04DF
050E C0BD RJMP maxres
050F D010 RCALL usub24
0510 F409 BNE 0x0512
0511 C0C1 RJMP minres
0512 F408 BCC 0x0514
0513 D0B2 RCALL negmant
0514 2322 TST R18
0515 F24A BMI 0x04DF
0516 0F00 LSL R16
0517 1F11 ROL R17
0518 1F22 ROL R18
0519 5031 SUBI R19,1
051A F7CB BVC 0x0514
051B C0B0 RJMP maxres
051C 0D02 ADD R16,R2
051D 1D13 ADC R17,R3
051E 1D24 ADC R18,R4
051F 9508 RET
usub24:
0520 1902 SUB R16,R2
0521 0913 SBC R17,R3
0522 0924 SBC R18,R4
0523 9508 RET
div32fs:
0524 D001 RCALL div32f
0525 CE46 RJMP push_arg4
div32f:
0526 DFA6 RCALL float_prolog
0527 D022 RCALL FDIV
0528 CF9D RJMP float_epilog
0529 93BA ST R27,-Y
052A 24DD CLR R13
052B 24EE CLR R14
052C 24FF CLR R15
052D E1B8 LDI R27,0x18
052E 1502 CP R16,R2
052F 0513 CPC R17,R3
0530 0524 CPC R18,R4
0531 F028 BCS 0x0537
0532 1902 SUB R16,R2
0533 0913 SBC R17,R3
0534 0924 SBC R18,R4
0535 9408 BSET 0
0536 C001 RJMP 0x0538
0537 9488 BCLR 0
0538 1CDD ROL R13
0539 1CEE ROL R14
053A 1CFF ROL R15
053B 0F00 LSL R16
053C 1F11 ROL R17
053D 1F22 ROL R18
053E 95BA DEC R27
053F F771 BNE 0x052E
0540 2D0D MOV R16,R13
0541 2D1E MOV R17,R14
0542 2D2F MOV R18,R15
0543 91B9 LD R27,Y+
0544 9508 RET
fdiv10:
0545 2422 CLR R2
0546 2433 CLR R3
0547 E2B0 LDI R27,0x20
0548 2E4B MOV R4,R27
0549 E491 LDI R25,0x41
FDIV:
054A 2399 TST R25
054B F119 BEQ 0x056F
054C 2333 TST R19
054D F141 BEQ 0x0576
054E D09C RCALL unpack
054F F131 BEQ 0x0576
0550 278A EOR R24,R26
0551 9408 BSET 0
0552 0B39 SBC R19,R25
0553 F0E3 BVS 0x0570
0554 9446 LSR R4
0555 9437 ROR R3
0556 9427 ROR R2
0557 9526 LSR R18
0558 9517 ROR R17
0559 9507 ROR R16
055A DFCE RCALL 0x0529
055B 2322 TST R18
055C F02A BMI 0x0562
055D 0F00 LSL R16
055E 1F11 ROL R17
055F 1F22 ROL R18
0560 5031 SUBI R19,1
0561 F073 BVS 0x0570
0562 2FB0 MOV R27,R16
0563 95B6 LSR R27
0564 F048 BCS 0x056E
0565 2300 TST R16
0566 F43A BPL 0x056E
0567 2311 TST R17
0568 F42A BPL 0x056E
0569 E0B1 LDI R27,1
056A 0F0B ADD R16,R27
056B 27BB CLR R27
056C 1F1B ADC R17,R27
056D 1F2B ADC R18,R27
056E C08E RJMP repack
056F C006 RJMP 0x0576
0570 E7BF LDI R27,0x7F
0571 2F3B MOV R19,R27
0572 2B2B OR R18,R27
0573 EF0F LDI R16,0xFF
0574 EF1F LDI R17,0xFF
0575 9508 RET
0576 2700 CLR R16
0577 2711 CLR R17
0578 2722 CLR R18
0579 2733 CLR R19
057A 2788 CLR R24
057B 9508 RET
057C E7BF LDI R27,0x7F
057D 2F3B MOV R19,R27
057E 2B2B OR R18,R27
057F EF0F LDI R16,0xFF
0580 EF1F LDI R17,0xFF
0581 9508 RET
0582 2700 CLR R16
0583 2711 CLR R17
0584 2722 CLR R18
0585 2733 CLR R19
0586 2788 CLR R24
0587 9508 RET
mpy32fs:
0588 D001 RCALL mpy32f
0589 CDE2 RJMP push_arg4
mpy32f:
058A DF42 RCALL float_prolog
058B D001 RCALL FMUL
058C CF39 RJMP float_epilog
FMUL:
058D D05D RCALL unpack
058E F399 BEQ 0x0582
058F 3890 CPI R25,0x80
0590 F389 BEQ 0x0582
0591 278A EOR R24,R26
0592 9408 BSET 0
0593 1F39 ADC R19,R25
0594 F33B BVS 0x057C
0595 D00A RCALL umul24
0596 2322 TST R18
0597 F02A BMI 0x059D
0598 953A DEC R19
0599 0CFF LSL R15
059A 1F00 ROL R16
059B 1F11 ROL R17
059C 1F22 ROL R18
059D 5F3F SUBI R19,0xFF
059E F2EB BVS 0x057C
059F C05D RJMP repack
umul24:
05A0 939A ST R25,-Y
05A1 24DD CLR R13
05A2 24EE CLR R14
05A3 24FF CLR R15
05A4 27BB CLR R27
05A5 E198 LDI R25,0x18
05A6 0CDD LSL R13
05A7 1CEE ROL R14
05A8 1CFF ROL R15
05A9 1F00 ROL R16
05AA 1F11 ROL R17
05AB 1F22 ROL R18
05AC F430 BCC 0x05B3
05AD 0CD2 ADD R13,R2
05AE 1CE3 ADC R14,R3
05AF 1CF4 ADC R15,R4
05B0 1F0B ADC R16,R27
05B1 1F1B ADC R17,R27
05B2 1F2B ADC R18,R27
05B3 959A DEC R25
05B4 F789 BNE 0x05A6
05B5 9199 LD R25,Y+
05B6 9508 RET
savfacc1:
05B7 938A ST R24,-Y
05B8 93BA ST R27,-Y
05B9 9508 RET
restorefacc1:
05BA 91B9 LD R27,Y+
05BB 9189 LD R24,Y+
05BC 9508 RET
unpackfacc1:
05BD 2F83 MOV R24,R19
05BE 7880 ANDI R24,0x80
05BF 0F22 LSL R18
05C0 1F33 ROL R19
05C1 5830 SUBI R19,0x80
05C2 9408 BSET 0
05C3 9527 ROR R18
05C4 3830 CPI R19,0x80
05C5 9508 RET
negmant:
05C6 9510 COM R17
05C7 9520 COM R18
05C8 9501 NEG R16
05C9 4F1F SBCI R17,0xFF
05CA 4F2F SBCI R18,0xFF
05CB 9508 RET
maxres:
05CC E7BF LDI R27,0x7F
05CD 2F3B MOV R19,R27
05CE 2B2B OR R18,R27
05CF EFBF LDI R27,0xFF
05D0 2F0B MOV R16,R27
05D1 2F1B MOV R17,R27
05D2 9508 RET
minres:
05D3 2700 CLR R16
05D4 2711 CLR R17
05D5 2722 CLR R18
05D6 2733 CLR R19
05D7 2788 CLR R24
05D8 9508 RET
ac1toac2:
05D9 2F93 MOV R25,R19
05DA 2E20 MOV R2,R16
05DB 2E31 MOV R3,R17
05DC 2E42 MOV R4,R18
05DD 2FA8 MOV R26,R24
05DE 9508 RET
swapacc:
05DF 922A ST R2,-Y
05E0 923A ST R3,-Y
05E1 924A ST R4,-Y
05E2 939A ST R25,-Y
05E3 93AA ST R26,-Y
05E4 DFF4 RCALL ac1toac2
05E5 9189 LD R24,Y+
05E6 9139 LD R19,Y+
05E7 9129 LD R18,Y+
05E8 9119 LD R17,Y+
05E9 9109 LD R16,Y+
05EA 9508 RET
unpack:
05EB 2F83 MOV R24,R19
05EC E8B0 LDI R27,0x80
05ED 0F22 LSL R18
05EE 1F33 ROL R19
05EF 273B EOR R19,R27
05F0 0FBB LSL R27
05F1 9527 ROR R18
05F2 7880 ANDI R24,0x80
05F3 2FA9 MOV R26,R25
05F4 E8B0 LDI R27,0x80
05F5 0C44 LSL R4
05F6 1F99 ROL R25
05F7 279B EOR R25,R27
05F8 0FBB LSL R27
05F9 9447 ROR R4
05FA 78A0 ANDI R26,0x80
05FB 3830 CPI R19,0x80
05FC 9508 RET
repack:
05FD 0F22 LSL R18
05FE E8B0 LDI R27,0x80
05FF 27B3 EOR R27,R19
0600 0F88 LSL R24
0601 95B7 ROR R27
0602 9527 ROR R18
0603 2F3B MOV R19,R27
0604 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -