⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m8pwm.lst

📁 电动车控制器
💻 LST
📖 第 1 页 / 共 4 页
字号:
    038B 5FB8      SUBI	R27,0xF8
    038C 2F32      MOV	R19,R18
    038D 2F21      MOV	R18,R17
    038E 2F10      MOV	R17,R16
    038F E800      LDI	R16,0x80
    0390 C006      RJMP	0x0397
    0391 2F01      MOV	R16,R17
    0392 2F12      MOV	R17,R18
    0393 E020      LDI	R18,0
    0394 50B8      SUBI	R27,0x8
    0395 30B8      CPI	R27,0x8
    0396 F7D0      BCC	0x0391
    0397 23BB      TST	R27
    0398 F031      BEQ	0x039F
    0399 9536      LSR	R19
    039A 9527      ROR	R18
    039B 9517      ROR	R17
    039C 9507      ROR	R16
    039D 95BA      DEC	R27
    039E F7D1      BNE	0x0399
    039F 9508      RET
int2fp:
    03A0 2722      CLR	R18
    03A1 FD17      SBRC	R17,7
    03A2 9520      COM	R18
    03A3 2733      CLR	R19
    03A4 FD27      SBRC	R18,7
    03A5 9530      COM	R19
long2fp:
    03A6 D119      RCALL	savfacc1
    03A7 D001      RCALL	ITOF
    03A8 C11A      RJMP	restorefacc1
ITOF:
    03A9 2788      CLR	R24
    03AA 2333      TST	R19
    03AB F412      BPL	0x03AE
    03AC DF6A      RCALL	neg32
    03AD 9580      COM	R24
    03AE 2FB0      MOV	R27,R16
    03AF 2BB1      OR	R27,R17
    03B0 2BB2      OR	R27,R18
    03B1 2BB3      OR	R27,R19
    03B2 F409      BNE	0x03B4
    03B3 C128      RJMP	minres
    03B4 E1B6      LDI	R27,0x16
    03B5 C005      RJMP	itof2
    03B6 95B3      INC	R27
    03B7 9536      LSR	R19
    03B8 9527      ROR	R18
    03B9 9517      ROR	R17
    03BA 9507      ROR	R16
itof2:
    03BB 2333      TST	R19
    03BC F7C9      BNE	0x03B6
itof3:
    03BD 2322      TST	R18
    03BE F449      BNE	0x03C8
    03BF 50B8      SUBI	R27,0x8
    03C0 2F21      MOV	R18,R17
    03C1 2F10      MOV	R17,R16
    03C2 E000      LDI	R16,0
    03C3 CFF9      RJMP	itof3
    03C4 95BA      DEC	R27
    03C5 0F00      LSL	R16
    03C6 1F11      ROL	R17
    03C7 1F22      ROL	R18
    03C8 F7DA      BPL	0x03C4
    03C9 2F3B      MOV	R19,R27
    03CA C13B      RJMP	repack
save_floatregs:
    03CB 92DA      ST	R13,-Y
    03CC 92EA      ST	R14,-Y
    03CD 92FA      ST	R15,-Y
    03CE 938A      ST	R24,-Y
    03CF 922A      ST	R2,-Y
    03D0 923A      ST	R3,-Y
    03D1 924A      ST	R4,-Y
    03D2 939A      ST	R25,-Y
    03D3 93AA      ST	R26,-Y
    03D4 93BA      ST	R27,-Y
    03D5 9508      RET
restore_floatregs:
    03D6 91B9      LD	R27,Y+
    03D7 91A9      LD	R26,Y+
    03D8 9199      LD	R25,Y+
    03D9 9049      LD	R4,Y+
    03DA 9039      LD	R3,Y+
    03DB 9029      LD	R2,Y+
    03DC 9189      LD	R24,Y+
    03DD 90F9      LD	R15,Y+
    03DE 90E9      LD	R14,Y+
    03DF 90D9      LD	R13,Y+
    03E0 9508      RET
stk2arg1:
    03E1 842A      LDD	R2,Y+10
    03E2 843B      LDD	R3,Y+11
    03E3 844C      LDD	R4,Y+12
    03E4 859D      LDD	R25,Y+13
    03E5 9508      RET
stk2arg0:
    03E6 850E      LDD	R16,Y+14
    03E7 851F      LDD	R17,Y+15
    03E8 8928      LDD	R18,Y+16
    03E9 8939      LDD	R19,Y+17
    03EA 9508      RET
float_epilog:
    03EB DFEA      RCALL	restore_floatregs
    03EC 920F      PUSH	R0
    03ED B60F      IN	R0,0x3F
    03EE 9628      ADIW	R28,0x8
    03EF BE0F      OUT	0x3F,R0
    03F0 900F      POP	R0
    03F1 9508      RET
float_prolog:
    03F2 DFD8      RCALL	save_floatregs
    03F3 DFF2      RCALL	stk2arg0
    03F4 CFEC      RJMP	stk2arg1
add32fs:
    03F5 D001      RCALL	add32f
    03F6 CEE8      RJMP	push_arg4
add32f:
    03F7 DFFA      RCALL	float_prolog
    03F8 D00D      RCALL	FADD
    03F9 CFF1      RJMP	float_epilog
sub32fs:
    03FA D001      RCALL	sub32f
    03FB CEE3      RJMP	push_arg4
sub32f:
    03FC DFF5      RCALL	float_prolog
    03FD D007      RCALL	FSUB
    03FE CFEC      RJMP	float_epilog
fret2:
    03FF 2F8A      MOV	R24,R26
    0400 2F39      MOV	R19,R25
    0401 2D24      MOV	R18,R4
    0402 2D13      MOV	R17,R3
    0403 2D02      MOV	R16,R2
    0404 C101      RJMP	repack
FSUB:
    0405 5890      SUBI	R25,0x80
FADD:
    0406 D0ED      RCALL	unpack
    0407 3890      CPI	R25,0x80
    0408 F3D9      BEQ	0x0404
    0409 3830      CPI	R19,0x80
    040A F3A1      BEQ	0x03FF
    040B 2FB3      MOV	R27,R19
    040C 1BB9      SUB	R27,R25
    040D F3B3      BVS	0x0404
    040E F02A      BMI	0x0414
    040F F431      BNE	0x0416
    0410 1502      CP	R16,R2
    0411 0513      CPC	R17,R3
    0412 0524      CPC	R18,R4
    0413 F410      BCC	0x0416
    0414 D0D3      RCALL	swapacc
    0415 CFF5      RJMP	0x040B
    0416 31B8      CPI	R27,0x18
    0417 F018      BCS	0x041B
    0418 2422      CLR	R2
    0419 2433      CLR	R3
    041A 2444      CLR	R4
    041B 30B8      CPI	R27,0x8
    041C F028      BCS	0x0422
    041D 2C23      MOV	R2,R3
    041E 2C34      MOV	R3,R4
    041F 2444      CLR	R4
    0420 50B8      SUBI	R27,0x8
    0421 CFF9      RJMP	0x041B
    0422 23BB      TST	R27
    0423 F029      BEQ	0x0429
    0424 9446      LSR	R4
    0425 9437      ROR	R3
    0426 9427      ROR	R2
    0427 95BA      DEC	R27
    0428 F7D9      BNE	0x0424
    0429 2FB8      MOV	R27,R24
    042A 27BA      EOR	R27,R26
    042B F042      BMI	0x0434
    042C D014      RCALL	0x0441
    042D F6B0      BCC	0x0404
    042E 9527      ROR	R18
    042F 9517      ROR	R17
    0430 9507      ROR	R16
    0431 5F3F      SUBI	R19,0xFF
    0432 F68B      BVC	0x0404
    0433 C0A1      RJMP	maxres
    0434 D010      RCALL	usub24
    0435 F409      BNE	0x0437
    0436 C0A5      RJMP	minres
    0437 F408      BCC	0x0439
    0438 D096      RCALL	negmant
    0439 2322      TST	R18
    043A F24A      BMI	0x0404
    043B 0F00      LSL	R16
    043C 1F11      ROL	R17
    043D 1F22      ROL	R18
    043E 5031      SUBI	R19,1
    043F F7CB      BVC	0x0439
    0440 C094      RJMP	maxres
    0441 0D02      ADD	R16,R2
    0442 1D13      ADC	R17,R3
    0443 1D24      ADC	R18,R4
    0444 9508      RET
usub24:
    0445 1902      SUB	R16,R2
    0446 0913      SBC	R17,R3
    0447 0924      SBC	R18,R4
    0448 9508      RET
cmp32f:
    0449 DFA8      RCALL	float_prolog
    044A D001      RCALL	FLTCP
    044B CF9F      RJMP	float_epilog
FLTCP:
    044C D002      RCALL	0x044F
    044D 23BB      TST	R27
    044E 9508      RET
    044F 2333      TST	R19
    0450 F082      BMI	0x0461
    0451 2399      TST	R25
    0452 F042      BMI	0x045B
    0453 1739      CP	R19,R25
    0454 F040      BCS	0x045D
    0455 F429      BNE	0x045B
    0456 1502      CP	R16,R2
    0457 0513      CPC	R17,R3
    0458 0524      CPC	R18,R4
    0459 F018      BCS	0x045D
    045A F021      BEQ	0x045F
    045B E0B1      LDI	R27,1
    045C 9508      RET
    045D EFBF      LDI	R27,0xFF
    045E 9508      RET
    045F 27BB      CLR	R27
    0460 9508      RET
    0461 2399      TST	R25
    0462 F7D2      BPL	0x045D
    0463 1739      CP	R19,R25
    0464 F3B0      BCS	0x045B
    0465 F7B9      BNE	0x045D
    0466 1502      CP	R16,R2
    0467 0513      CPC	R17,R3
    0468 0524      CPC	R18,R4
    0469 F388      BCS	0x045B
    046A F3A1      BEQ	0x045F
    046B CFF1      RJMP	0x045D
    046C E7BF      LDI	R27,0x7F
    046D 2F3B      MOV	R19,R27
    046E 2B2B      OR	R18,R27
    046F EF0F      LDI	R16,0xFF
    0470 EF1F      LDI	R17,0xFF
    0471 9508      RET
    0472 2700      CLR	R16
    0473 2711      CLR	R17
    0474 2722      CLR	R18
    0475 2733      CLR	R19
    0476 2788      CLR	R24
    0477 9508      RET
empy32fs:
    0478 D001      RCALL	empy32f
    0479 CE65      RJMP	push_arg4
empy32f:
    047A DF77      RCALL	float_prolog
    047B 920F      PUSH	R0
    047C 92CF      PUSH	R12
    047D D003      RCALL	eFMUL
    047E 90CF      POP	R12
    047F 900F      POP	R0
    0480 CF6A      RJMP	float_epilog
eFMUL:
    0481 D072      RCALL	unpack
    0482 F379      BEQ	0x0472
    0483 3890      CPI	R25,0x80
    0484 F369      BEQ	0x0472
    0485 278A      EOR	R24,R26
    0486 9408      BSET	0
    0487 1F39      ADC	R19,R25
    0488 F31B      BVS	0x046C
    0489 D00D      RCALL	eumul24
    048A 2D2F      MOV	R18,R15
    048B 2D1E      MOV	R17,R14
    048C 2D0D      MOV	R16,R13
    048D 2322      TST	R18
    048E F02A      BMI	0x0494
    048F 953A      DEC	R19
    0490 0CCC      LSL	R12
    0491 1F00      ROL	R16
    0492 1F11      ROL	R17
    0493 1F22      ROL	R18
    0494 5F3F      SUBI	R19,0xFF
    0495 F2B3      BVS	0x046C
    0496 C06F      RJMP	repack
eumul24:
    0497 9D22      MUL	R18,R2
    0498 2CC0      MOV	R12,R0
    0499 2CD1      MOV	R13,R1
    049A 9D24      MUL	R18,R4
    049B 2CE0      MOV	R14,R0
    049C 2CF1      MOV	R15,R1
    049D 9D12      MUL	R17,R2
    049E 0CC1      ADD	R12,R1
    049F 1EDB      ADC	R13,R27
    04A0 1EEB      ADC	R14,R27
    04A1 1EFB      ADC	R15,R27
    04A2 9D03      MUL	R16,R3
    04A3 0CC1      ADD	R12,R1
    04A4 1EDB      ADC	R13,R27
    04A5 1EEB      ADC	R14,R27
    04A6 1EFB      ADC	R15,R27
    04A7 9D13      MUL	R17,R3
    04A8 0CC0      ADD	R12,R0
    04A9 1CD1      ADC	R13,R1
    04AA 1EEB      ADC	R14,R27
    04AB 1EFB      ADC	R15,R27
    04AC 9D04      MUL	R16,R4
    04AD 0CC0      ADD	R12,R0
    04AE 1CD1      ADC	R13,R1
    04AF 1EEB      ADC	R14,R27
    04B0 1EFB      ADC	R15,R27
    04B1 9D23      MUL	R18,R3
    04B2 0CD0      ADD	R13,R0
    04B3 1CE1      ADC	R14,R1
    04B4 1EFB      ADC	R15,R27
    04B5 9D14      MUL	R17,R4
    04B6 0CD0      ADD	R13,R0
    04B7 1CE1      ADC	R14,R1
    04B8 1EFB      ADC	R15,R27
    04B9 20CC      TST	R12
    04BA F422      BPL	0x04BF
    04BB 9488      BCLR	0
    04BC 1EDB      ADC	R13,R27
    04BD 1EEB      ADC	R14,R27
    04BE 1EFB      ADC	R15,R27
    04BF 9508      RET
savfacc1:
    04C0 938A      ST	R24,-Y
    04C1 93BA      ST	R27,-Y
    04C2 9508      RET
restorefacc1:
    04C3 91B9      LD	R27,Y+
    04C4 9189      LD	R24,Y+
    04C5 9508      RET
unpackfacc1:
    04C6 2F83      MOV	R24,R19
    04C7 7880      ANDI	R24,0x80
    04C8 0F22      LSL	R18
    04C9 1F33      ROL	R19
    04CA 5830      SUBI	R19,0x80
    04CB 9408      BSET	0
    04CC 9527      ROR	R18
    04CD 3830      CPI	R19,0x80
    04CE 9508      RET
negmant:
    04CF 9510      COM	R17
    04D0 9520      COM	R18
    04D1 9501      NEG	R16
    04D2 4F1F      SBCI	R17,0xFF
    04D3 4F2F      SBCI	R18,0xFF
    04D4 9508      RET
maxres:
    04D5 E7BF      LDI	R27,0x7F
    04D6 2F3B      MOV	R19,R27
    04D7 2B2B      OR	R18,R27
    04D8 EFBF      LDI	R27,0xFF
    04D9 2F0B      MOV	R16,R27
    04DA 2F1B      MOV	R17,R27
    04DB 9508      RET
minres:
    04DC 2700      CLR	R16
    04DD 2711      CLR	R17
    04DE 2722      CLR	R18
    04DF 2733      CLR	R19
    04E0 2788      CLR	R24
    04E1 9508      RET
ac1toac2:
    04E2 2F93      MOV	R25,R19
    04E3 2E20      MOV	R2,R16
    04E4 2E31      MOV	R3,R17
    04E5 2E42      MOV	R4,R18
    04E6 2FA8      MOV	R26,R24
    04E7 9508      RET
swapacc:
    04E8 922A      ST	R2,-Y
    04E9 923A      ST	R3,-Y
    04EA 924A      ST	R4,-Y
    04EB 939A      ST	R25,-Y
    04EC 93AA      ST	R26,-Y
    04ED DFF4      RCALL	ac1toac2
    04EE 9189      LD	R24,Y+
    04EF 9139      LD	R19,Y+
    04F0 9129      LD	R18,Y+
    04F1 9119      LD	R17,Y+
    04F2 9109      LD	R16,Y+
    04F3 9508      RET
unpack:
    04F4 2F83      MOV	R24,R19
    04F5 E8B0      LDI	R27,0x80
    04F6 0F22      LSL	R18
    04F7 1F33      ROL	R19
    04F8 273B      EOR	R19,R27
    04F9 0FBB      LSL	R27
    04FA 9527      ROR	R18
    04FB 7880      ANDI	R24,0x80
    04FC 2FA9      MOV	R26,R25
    04FD E8B0      LDI	R27,0x80
    04FE 0C44      LSL	R4
    04FF 1F99      ROL	R25
    0500 279B      EOR	R25,R27
    0501 0FBB      LSL	R27
    0502 9447      ROR	R4
    0503 78A0      ANDI	R26,0x80
    0504 3830      CPI	R19,0x80
    0505 9508      RET
repack:
    0506 0F22      LSL	R18
    0507 E8B0      LDI	R27,0x80
    0508 27B3      EOR	R27,R19
    0509 0F88      LSL	R24
    050A 95B7      ROR	R27
    050B 9527      ROR	R18
    050C 2F3B      MOV	R19,R27
    050D 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -