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

📄 ad2543.lst

📁 在mega128上实现ad2543的驱动程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    0516 92EA      ST	R14,-Y
    0517 92FA      ST	R15,-Y
    0518 938A      ST	R24,-Y
    0519 922A      ST	R2,-Y
    051A 923A      ST	R3,-Y
    051B 924A      ST	R4,-Y
    051C 939A      ST	R25,-Y
    051D 93AA      ST	R26,-Y
    051E 93BA      ST	R27,-Y
    051F 9508      RET
restore_floatregs:
    0520 91B9      LD	R27,Y+
    0521 91A9      LD	R26,Y+
    0522 9199      LD	R25,Y+
    0523 9049      LD	R4,Y+
    0524 9039      LD	R3,Y+
    0525 9029      LD	R2,Y+
    0526 9189      LD	R24,Y+
    0527 90F9      LD	R15,Y+
    0528 90E9      LD	R14,Y+
    0529 90D9      LD	R13,Y+
    052A 9508      RET
stk2arg1:
    052B 842A      LDD	R2,Y+10
    052C 843B      LDD	R3,Y+11
    052D 844C      LDD	R4,Y+12
    052E 859D      LDD	R25,Y+13
    052F 9508      RET
stk2arg0:
    0530 850E      LDD	R16,Y+14
    0531 851F      LDD	R17,Y+15
    0532 8928      LDD	R18,Y+16
    0533 8939      LDD	R19,Y+17
    0534 9508      RET
float_epilog:
    0535 DFEA      RCALL	restore_floatregs
    0536 920F      PUSH	R0
    0537 B60F      IN	R0,0x3F
    0538 9628      ADIW	R28,0x8
    0539 BE0F      OUT	0x3F,R0
    053A 900F      POP	R0
    053B 9508      RET
float_prolog:
    053C DFD8      RCALL	save_floatregs
    053D DFF2      RCALL	stk2arg0
    053E CFEC      RJMP	stk2arg1
add32fs:
    053F D002      RCALL	add32f
    0540 940C03C6  JMP	push_arg4
add32f:
    0542 940E053C  CALL	float_prolog
    0544 D012      RCALL	FADD
    0545 940C0535  JMP	float_epilog
sub32fs:
    0547 D002      RCALL	sub32f
    0548 940C03C6  JMP	push_arg4
sub32f:
    054A 940E053C  CALL	float_prolog
    054C D009      RCALL	FSUB
    054D 940C0535  JMP	float_epilog
fret2:
    054F 2F8A      MOV	R24,R26
    0550 2F39      MOV	R19,R25
    0551 2D24      MOV	R18,R4
    0552 2D13      MOV	R17,R3
    0553 2D02      MOV	R16,R2
    0554 940C069C  JMP	repack
FSUB:
    0556 5890      SUBI	R25,0x80
FADD:
    0557 940E068A  CALL	unpack
    0559 3890      CPI	R25,0x80
    055A F3C9      BEQ	0x0554
    055B 3830      CPI	R19,0x80
    055C F391      BEQ	0x054F
    055D 2FB3      MOV	R27,R19
    055E 1BB9      SUB	R27,R25
    055F F3A3      BVS	0x0554
    0560 F02A      BMI	0x0566
    0561 F439      BNE	0x0569
    0562 1502      CP	R16,R2
    0563 0513      CPC	R17,R3
    0564 0524      CPC	R18,R4
    0565 F418      BCC	0x0569
    0566 940E067E  CALL	swapacc
    0568 CFF4      RJMP	0x055D
    0569 31B8      CPI	R27,0x18
    056A F018      BCS	0x056E
    056B 2422      CLR	R2
    056C 2433      CLR	R3
    056D 2444      CLR	R4
    056E 30B8      CPI	R27,0x8
    056F F028      BCS	0x0575
    0570 2C23      MOV	R2,R3
    0571 2C34      MOV	R3,R4
    0572 2444      CLR	R4
    0573 50B8      SUBI	R27,0x8
    0574 CFF9      RJMP	0x056E
    0575 23BB      TST	R27
    0576 F029      BEQ	0x057C
    0577 9446      LSR	R4
    0578 9437      ROR	R3
    0579 9427      ROR	R2
    057A 95BA      DEC	R27
    057B F7D9      BNE	0x0577
    057C 2FB8      MOV	R27,R24
    057D 27BA      EOR	R27,R26
    057E F04A      BMI	0x0588
    057F D018      RCALL	0x0598
    0580 F698      BCC	0x0554
    0581 9527      ROR	R18
    0582 9517      ROR	R17
    0583 9507      ROR	R16
    0584 5F3F      SUBI	R19,0xFF
    0585 F673      BVC	0x0554
    0586 940C066B  JMP	maxres
    0588 D013      RCALL	usub24
    0589 F411      BNE	0x058C
    058A 940C0672  JMP	minres
    058C F410      BCC	0x058F
    058D 940E0665  CALL	negmant
    058F 2322      TST	R18
    0590 F21A      BMI	0x0554
    0591 0F00      LSL	R16
    0592 1F11      ROL	R17
    0593 1F22      ROL	R18
    0594 5031      SUBI	R19,1
    0595 F7CB      BVC	0x058F
    0596 940C066B  JMP	maxres
    0598 0D02      ADD	R16,R2
    0599 1D13      ADC	R17,R3
    059A 1D24      ADC	R18,R4
    059B 9508      RET
usub24:
    059C 1902      SUB	R16,R2
    059D 0913      SBC	R17,R3
    059E 0924      SBC	R18,R4
    059F 9508      RET
div32fs:
    05A0 D002      RCALL	div32f
    05A1 940C03C6  JMP	push_arg4
div32f:
    05A3 940E053C  CALL	float_prolog
    05A5 D023      RCALL	FDIV
    05A6 940C0535  JMP	float_epilog
    05A8 93BA      ST	R27,-Y
    05A9 24DD      CLR	R13
    05AA 24EE      CLR	R14
    05AB 24FF      CLR	R15
    05AC E1B8      LDI	R27,0x18
    05AD 1502      CP	R16,R2
    05AE 0513      CPC	R17,R3
    05AF 0524      CPC	R18,R4
    05B0 F028      BCS	0x05B6
    05B1 1902      SUB	R16,R2
    05B2 0913      SBC	R17,R3
    05B3 0924      SBC	R18,R4
    05B4 9408      BSET	0
    05B5 C001      RJMP	0x05B7
    05B6 9488      BCLR	0
    05B7 1CDD      ROL	R13
    05B8 1CEE      ROL	R14
    05B9 1CFF      ROL	R15
    05BA 0F00      LSL	R16
    05BB 1F11      ROL	R17
    05BC 1F22      ROL	R18
    05BD 95BA      DEC	R27
    05BE F771      BNE	0x05AD
    05BF 2D0D      MOV	R16,R13
    05C0 2D1E      MOV	R17,R14
    05C1 2D2F      MOV	R18,R15
    05C2 91B9      LD	R27,Y+
    05C3 9508      RET
fdiv10:
    05C4 2422      CLR	R2
    05C5 2433      CLR	R3
    05C6 E2B0      LDI	R27,0x20
    05C7 2E4B      MOV	R4,R27
    05C8 E491      LDI	R25,0x41
FDIV:
    05C9 2399      TST	R25
    05CA F129      BEQ	0x05F0
    05CB 2333      TST	R19
    05CC F151      BEQ	0x05F7
    05CD 940E068A  CALL	unpack
    05CF F139      BEQ	0x05F7
    05D0 278A      EOR	R24,R26
    05D1 9408      BSET	0
    05D2 0B39      SBC	R19,R25
    05D3 F0EB      BVS	0x05F1
    05D4 9446      LSR	R4
    05D5 9437      ROR	R3
    05D6 9427      ROR	R2
    05D7 9526      LSR	R18
    05D8 9517      ROR	R17
    05D9 9507      ROR	R16
    05DA DFCD      RCALL	0x05A8
    05DB 2322      TST	R18
    05DC F02A      BMI	0x05E2
    05DD 0F00      LSL	R16
    05DE 1F11      ROL	R17
    05DF 1F22      ROL	R18
    05E0 5031      SUBI	R19,1
    05E1 F07B      BVS	0x05F1
    05E2 2FB0      MOV	R27,R16
    05E3 95B6      LSR	R27
    05E4 F048      BCS	0x05EE
    05E5 2300      TST	R16
    05E6 F43A      BPL	0x05EE
    05E7 2311      TST	R17
    05E8 F42A      BPL	0x05EE
    05E9 E0B1      LDI	R27,1
    05EA 0F0B      ADD	R16,R27
    05EB 27BB      CLR	R27
    05EC 1F1B      ADC	R17,R27
    05ED 1F2B      ADC	R18,R27
    05EE 940C069C  JMP	repack
    05F0 C006      RJMP	0x05F7
    05F1 E7BF      LDI	R27,0x7F
    05F2 2F3B      MOV	R19,R27
    05F3 2B2B      OR	R18,R27
    05F4 EF0F      LDI	R16,0xFF
    05F5 EF1F      LDI	R17,0xFF
    05F6 9508      RET
    05F7 2700      CLR	R16
    05F8 2711      CLR	R17
    05F9 2722      CLR	R18
    05FA 2733      CLR	R19
    05FB 2788      CLR	R24
    05FC 9508      RET
    05FD E7BF      LDI	R27,0x7F
    05FE 2F3B      MOV	R19,R27
    05FF 2B2B      OR	R18,R27
    0600 EF0F      LDI	R16,0xFF
    0601 EF1F      LDI	R17,0xFF
    0602 9508      RET
    0603 2700      CLR	R16
    0604 2711      CLR	R17
    0605 2722      CLR	R18
    0606 2733      CLR	R19
    0607 2788      CLR	R24
    0608 9508      RET
empy32fs:
    0609 D002      RCALL	empy32f
    060A 940C03C6  JMP	push_arg4
empy32f:
    060C 940E053C  CALL	float_prolog
    060E 920F      PUSH	R0
    060F 92CF      PUSH	R12
    0610 D004      RCALL	eFMUL
    0611 90CF      POP	R12
    0612 900F      POP	R0
    0613 940C0535  JMP	float_epilog
eFMUL:
    0615 940E068A  CALL	unpack
    0617 F359      BEQ	0x0603
    0618 3890      CPI	R25,0x80
    0619 F349      BEQ	0x0603
    061A 278A      EOR	R24,R26
    061B 9408      BSET	0
    061C 1F39      ADC	R19,R25
    061D F2FB      BVS	0x05FD
    061E D00E      RCALL	eumul24
    061F 2D2F      MOV	R18,R15
    0620 2D1E      MOV	R17,R14
    0621 2D0D      MOV	R16,R13
    0622 2322      TST	R18
    0623 F02A      BMI	0x0629
    0624 953A      DEC	R19
    0625 0CCC      LSL	R12
    0626 1F00      ROL	R16
    0627 1F11      ROL	R17
    0628 1F22      ROL	R18
    0629 5F3F      SUBI	R19,0xFF
    062A F293      BVS	0x05FD
    062B 940C069C  JMP	repack
eumul24:
    062D 9D22      MUL	R18,R2
    062E 2CC0      MOV	R12,R0
    062F 2CD1      MOV	R13,R1
    0630 9D24      MUL	R18,R4
    0631 2CE0      MOV	R14,R0
    0632 2CF1      MOV	R15,R1
    0633 9D12      MUL	R17,R2
    0634 0CC1      ADD	R12,R1
    0635 1EDB      ADC	R13,R27
    0636 1EEB      ADC	R14,R27
    0637 1EFB      ADC	R15,R27
    0638 9D03      MUL	R16,R3
    0639 0CC1      ADD	R12,R1
    063A 1EDB      ADC	R13,R27
    063B 1EEB      ADC	R14,R27
    063C 1EFB      ADC	R15,R27
    063D 9D13      MUL	R17,R3
    063E 0CC0      ADD	R12,R0
    063F 1CD1      ADC	R13,R1
    0640 1EEB      ADC	R14,R27
    0641 1EFB      ADC	R15,R27
    0642 9D04      MUL	R16,R4
    0643 0CC0      ADD	R12,R0
    0644 1CD1      ADC	R13,R1
    0645 1EEB      ADC	R14,R27
    0646 1EFB      ADC	R15,R27
    0647 9D23      MUL	R18,R3
    0648 0CD0      ADD	R13,R0
    0649 1CE1      ADC	R14,R1
    064A 1EFB      ADC	R15,R27
    064B 9D14      MUL	R17,R4
    064C 0CD0      ADD	R13,R0
    064D 1CE1      ADC	R14,R1
    064E 1EFB      ADC	R15,R27
    064F 20CC      TST	R12
    0650 F422      BPL	0x0655
    0651 9488      BCLR	0
    0652 1EDB      ADC	R13,R27
    0653 1EEB      ADC	R14,R27
    0654 1EFB      ADC	R15,R27
    0655 9508      RET
savfacc1:
    0656 938A      ST	R24,-Y
    0657 93BA      ST	R27,-Y
    0658 9508      RET
restorefacc1:
    0659 91B9      LD	R27,Y+
    065A 9189      LD	R24,Y+
    065B 9508      RET
unpackfacc1:
    065C 2F83      MOV	R24,R19
    065D 7880      ANDI	R24,0x80
    065E 0F22      LSL	R18
    065F 1F33      ROL	R19
    0660 5830      SUBI	R19,0x80
    0661 9408      BSET	0
    0662 9527      ROR	R18
    0663 3830      CPI	R19,0x80
    0664 9508      RET
negmant:
    0665 9510      COM	R17
    0666 9520      COM	R18
    0667 9501      NEG	R16
    0668 4F1F      SBCI	R17,0xFF
    0669 4F2F      SBCI	R18,0xFF
    066A 9508      RET
maxres:
    066B E7BF      LDI	R27,0x7F
    066C 2F3B      MOV	R19,R27
    066D 2B2B      OR	R18,R27
    066E EFBF      LDI	R27,0xFF
    066F 2F0B      MOV	R16,R27
    0670 2F1B      MOV	R17,R27
    0671 9508      RET
minres:
    0672 2700      CLR	R16
    0673 2711      CLR	R17
    0674 2722      CLR	R18
    0675 2733      CLR	R19
    0676 2788      CLR	R24
    0677 9508      RET
ac1toac2:
    0678 2F93      MOV	R25,R19
    0679 2E20      MOV	R2,R16
    067A 2E31      MOV	R3,R17
    067B 2E42      MOV	R4,R18
    067C 2FA8      MOV	R26,R24
    067D 9508      RET
swapacc:
    067E 922A      ST	R2,-Y
    067F 923A      ST	R3,-Y
    0680 924A      ST	R4,-Y
    0681 939A      ST	R25,-Y
    0682 93AA      ST	R26,-Y
    0683 DFF4      RCALL	ac1toac2
    0684 9189      LD	R24,Y+
    0685 9139      LD	R19,Y+
    0686 9129      LD	R18,Y+
    0687 9119      LD	R17,Y+
    0688 9109      LD	R16,Y+
    0689 9508      RET
unpack:
    068A 2F83      MOV	R24,R19
    068B E8B0      LDI	R27,0x80
    068C 0F22      LSL	R18
    068D 1F33      ROL	R19
    068E 273B      EOR	R19,R27
    068F 0FBB      LSL	R27
    0690 9527      ROR	R18
    0691 7880      ANDI	R24,0x80
    0692 2FA9      MOV	R26,R25
    0693 E8B0      LDI	R27,0x80
    0694 0C44      LSL	R4
    0695 1F99      ROL	R25
    0696 279B      EOR	R25,R27
    0697 0FBB      LSL	R27
    0698 9447      ROR	R4
    0699 78A0      ANDI	R26,0x80
    069A 3830      CPI	R19,0x80
    069B 9508      RET
repack:
    069C 0F22      LSL	R18
    069D E8B0      LDI	R27,0x80
    069E 27B3      EOR	R27,R19
    069F 0F88      LSL	R24
    06A0 95B7      ROR	R27
    06A1 9527      ROR	R18
    06A2 2F3B      MOV	R19,R27
    06A3 9508      RET

⌨️ 快捷键说明

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