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

📄 hc595.lst

📁 ATMEGA128的SPI驱动程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    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 + -