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

📄 计算器.lst

📁 八位整数的+-*/
💻 LST
📖 第 1 页 / 共 4 页
字号:
     531 1F11      ROL	R17
     532 1F22      ROL	R18
     533 1F33      ROL	R19
     534 954A      DEC	R20
     535 F7D1      BNE	0x0530
     536 C005      RJMP	0x053C
     537 E73F      LDI	R19,0x7F
     538 2F23      MOV	R18,R19
     539 2F13      MOV	R17,R19
     53A 2F03      MOV	R16,R19
     53B C004      RJMP	0x0540
     53C 2366      TST	R22
     53D F011      BEQ	0x0540
     53E 940E 0463 CALL	neg32
     540 9169      LD	R22,Y+
     541 9159      LD	R21,Y+
     542 9149      LD	R20,Y+
     543 9508      RET
uint2fp:
     544 9468      BSET	6
     545 C001      RJMP	0x0547
int2fp:
     546 94E8      BCLR	6
     547 2722      CLR	R18
     548 2733      CLR	R19
     549 F046      BRTS	0x0552
     54A FD17      SBRC	R17,7
     54B 9520      COM	R18
     54C FD17      SBRC	R17,7
     54D 9530      COM	R19
     54E C002      RJMP	long2fp
ulong2fp:
     54F 9468      BSET	6
     550 C001      RJMP	0x0552
long2fp:
     551 94E8      BCLR	6
     552 934A      ST	R20,-Y
     553 935A      ST	R21,-Y
     554 936A      ST	R22,-Y
     555 E147      LDI	R20,0x17
     556 2766      CLR	R22
     557 2755      CLR	R21
     558 F02E      BRTS	0x055E
     559 2333      TST	R19
     55A F41A      BPL	0x055E
     55B 940E 0463 CALL	neg32
     55D E860      LDI	R22,0x80
     55E 940E 0639 CALL	normalize_and_pack
     560 9169      LD	R22,Y+
     561 9159      LD	R21,Y+
     562 9149      LD	R20,Y+
     563 9508      RET
fpdiv1:
     564 93FA      ST	R31,-Y
     565 93EA      ST	R30,-Y
     566 81EA      LDD	R30,Y+2
     567 81FB      LDD	R31,Y+3
     568 D027      RCALL	0x0590
     569 91E9      LD	R30,Y+
     56A 91F9      LD	R31,Y+
     56B 9622      ADIW	R28,2
     56C 9508      RET
fpdiv2:
     56D 93FA      ST	R31,-Y
     56E 93EA      ST	R30,-Y
     56F 2FEC      MOV	R30,R28
     570 2FFD      MOV	R31,R29
     571 9632      ADIW	R30,2
     572 D01D      RCALL	0x0590
     573 91E9      LD	R30,Y+
     574 91F9      LD	R31,Y+
     575 9624      ADIW	R28,4
     576 9508      RET
fpdiv1x:
     577 93FA      ST	R31,-Y
     578 93EA      ST	R30,-Y
     579 81EA      LDD	R30,Y+2
     57A 81FB      LDD	R31,Y+3
     57B D014      RCALL	0x0590
     57C 91E9      LD	R30,Y+
     57D 91F9      LD	R31,Y+
     57E 8339      STD	Y+1,R19
     57F 8328      STD	Y+0,R18
     580 931A      ST	R17,-Y
     581 930A      ST	R16,-Y
     582 9508      RET
fpdiv2x:
     583 93FA      ST	R31,-Y
     584 93EA      ST	R30,-Y
     585 2FEC      MOV	R30,R28
     586 2FFD      MOV	R31,R29
     587 9632      ADIW	R30,2
     588 D007      RCALL	0x0590
     589 91E9      LD	R30,Y+
     58A 91F9      LD	R31,Y+
     58B 833B      STD	Y+3,R19
     58C 832A      STD	Y+2,R18
     58D 8319      STD	Y+1,R17
     58E 8308      STD	Y+0,R16
     58F 9508      RET
     590 924A      ST	R4,-Y
     591 925A      ST	R5,-Y
     592 926A      ST	R6,-Y
     593 927A      ST	R7,-Y
     594 928A      ST	R8,-Y
     595 929A      ST	R9,-Y
     596 92AA      ST	R10,-Y
     597 92BA      ST	R11,-Y
     598 92CA      ST	R12,-Y
     599 92DA      ST	R13,-Y
     59A 92EA      ST	R14,-Y
     59B 92FA      ST	R15,-Y
     59C 934A      ST	R20,-Y
     59D 935A      ST	R21,-Y
     59E 936A      ST	R22,-Y
     59F 937A      ST	R23,-Y
     5A0 938A      ST	R24,-Y
     5A1 939A      ST	R25,-Y
     5A2 933A      ST	R19,-Y
     5A3 932A      ST	R18,-Y
     5A4 931A      ST	R17,-Y
     5A5 930A      ST	R16,-Y
     5A6 8100      LDD	R16,Z+0
     5A7 8111      LDD	R17,Z+1
     5A8 8122      LDD	R18,Z+2
     5A9 8133      LDD	R19,Z+3
     5AA 940E 0624 CALL	unpacku
     5AC F409      BNE	0x05AE
     5AD C061      RJMP	0x060F
     5AE 2EE6      MOV	R14,R22
     5AF 2ED5      MOV	R13,R21
     5B0 2EC4      MOV	R12,R20
     5B1 2EB3      MOV	R11,R19
     5B2 2EA2      MOV	R10,R18
     5B3 2E91      MOV	R9,R17
     5B4 2E80      MOV	R8,R16
     5B5 9109      LD	R16,Y+
     5B6 9119      LD	R17,Y+
     5B7 9129      LD	R18,Y+
     5B8 9139      LD	R19,Y+
     5B9 940E 0624 CALL	unpacku
     5BB F191      BEQ	0x05EE
     5BC 256E      EOR	R22,R14
     5BD 194C      SUB	R20,R12
     5BE 095D      SBC	R21,R13
     5BF 3840      CPI	R20,0x80
     5C0 0753      CPC	R21,R19
     5C1 F00C      BLT	0x05C3
     5C2 C03E      RJMP	0x0601
     5C3 3841      CPI	R20,0x81
     5C4 EF7F      LDI	R23,0xFF
     5C5 0757      CPC	R21,R23
     5C6 F40C      BGE	0x05C8
     5C7 C042      RJMP	0x060A
     5C8 E280      LDI	R24,0x20
     5C9 2477      CLR	R7
     5CA 2E63      MOV	R6,R19
     5CB 2E52      MOV	R5,R18
     5CC 2E41      MOV	R4,R17
     5CD 2F30      MOV	R19,R16
     5CE 2722      CLR	R18
     5CF 2711      CLR	R17
     5D0 2700      CLR	R16
     5D1 9466      LSR	R6
     5D2 9457      ROR	R5
     5D3 9447      ROR	R4
     5D4 9537      ROR	R19
     5D5 9527      ROR	R18
     5D6 0F00      LSL	R16
     5D7 1F11      ROL	R17
     5D8 1F22      ROL	R18
     5D9 1F33      ROL	R19
     5DA 1C44      ROL	R4
     5DB 1C55      ROL	R5
     5DC 1C66      ROL	R6
     5DD 1C77      ROL	R7
     5DE F028      BCS	0x05E4
     5DF 1848      SUB	R4,R8
     5E0 0859      SBC	R5,R9
     5E1 086A      SBC	R6,R10
     5E2 087B      SBC	R7,R11
     5E3 C004      RJMP	0x05E8
     5E4 0C48      ADD	R4,R8
     5E5 1C59      ADC	R5,R9
     5E6 1C6A      ADC	R6,R10
     5E7 1C7B      ADC	R7,R11
     5E8 F00A      BMI	0x05EA
     5E9 6001      ORI	R16,1
     5EA 958A      DEC	R24
     5EB F751      BNE	0x05D6
     5EC 940E 0639 CALL	normalize_and_pack
     5EE 9199      LD	R25,Y+
     5EF 9189      LD	R24,Y+
     5F0 9179      LD	R23,Y+
     5F1 9169      LD	R22,Y+
     5F2 9159      LD	R21,Y+
     5F3 9149      LD	R20,Y+
     5F4 90F9      LD	R15,Y+
     5F5 90E9      LD	R14,Y+
     5F6 90D9      LD	R13,Y+
     5F7 90C9      LD	R12,Y+
     5F8 90B9      LD	R11,Y+
     5F9 90A9      LD	R10,Y+
     5FA 9099      LD	R9,Y+
     5FB 9089      LD	R8,Y+
     5FC 9079      LD	R7,Y+
     5FD 9069      LD	R6,Y+
     5FE 9059      LD	R5,Y+
     5FF 9049      LD	R4,Y+
     600 9508      RET
     601 EF0F      LDI	R16,0xFF
     602 2F10      MOV	R17,R16
     603 E72F      LDI	R18,0x7F
     604 E73F      LDI	R19,0x7F
     605 2366      TST	R22
     606 F339      BEQ	0x05EE
     607 940E 0463 CALL	neg32
     609 CFE4      RJMP	0x05EE
     60A 2700      CLR	R16
     60B 2F10      MOV	R17,R16
     60C 2F20      MOV	R18,R16
     60D 2F30      MOV	R19,R16
     60E CFDF      RJMP	0x05EE
     60F 9109      LD	R16,Y+
     610 9119      LD	R17,Y+
     611 9129      LD	R18,Y+
     612 9139      LD	R19,Y+
     613 CFED      RJMP	0x0601
unpacks:
     614 D00F      RCALL	unpacku
     615 F029      BEQ	0x061B
     616 2366      TST	R22
     617 F011      BEQ	0x061A
     618 940E 0463 CALL	neg32
     61A 9498      BCLR	1
     61B 9508      RET
tstR16_R19:
     61C 2300      TST	R16
     61D F429      BNE	0x0623
     61E 2311      TST	R17
     61F F419      BNE	0x0623
     620 2322      TST	R18
     621 F409      BNE	0x0623
     622 2333      TST	R19
     623 9508      RET
unpacku:
     624 DFF7      RCALL	tstR16_R19
     625 F079      BEQ	0x0635
     626 2F63      MOV	R22,R19
     627 7860      ANDI	R22,0x80
     628 0F22      LSL	R18
     629 1F33      ROL	R19
     62A 2F43      MOV	R20,R19
     62B E75F      LDI	R21,0x7F
     62C 1B45      SUB	R20,R21
     62D 2755      CLR	R21
     62E 4050      SBCI	R21,0
     62F 9526      LSR	R18
     630 E830      LDI	R19,0x80
     631 2B23      OR	R18,R19
     632 2733      CLR	R19
     633 9498      BCLR	1
     634 9508      RET
     635 2744      CLR	R20
     636 2755      CLR	R21
     637 2766      CLR	R22
     638 9508      RET
normalize_and_pack:
     639 DFE2      RCALL	tstR16_R19
     63A F121      BEQ	0x065F
     63B 939A      ST	R25,-Y
     63C 938A      ST	R24,-Y
     63D E78E      LDI	R24,0x7E
     63E E090      LDI	R25,0
     63F 2333      TST	R19
     640 F051      BEQ	0x064B
     641 9536      LSR	R19
     642 9527      ROR	R18
     643 9517      ROR	R17
     644 9507      ROR	R16
     645 1748      CP	R20,R24
     646 0759      CPC	R21,R25
     647 F4C4      BGE	0x0660
     648 5F4F      SUBI	R20,0xFF
     649 4F5F      SBCI	R21,0xFF
     64A CFF4      RJMP	0x063F
     64B 9580      COM	R24
     64C 9590      COM	R25
     64D 9601      ADIW	R24,1
     64E 2322      TST	R18
     64F F0AA      BMI	0x0665
     650 0F00      LSL	R16
     651 1F11      ROL	R17
     652 1F22      ROL	R18
     653 1748      CP	R20,R24
     654 0759      CPC	R21,R25
     655 F01C      BLT	0x0659
     656 5041      SUBI	R20,1
     657 4050      SBCI	R21,0
     658 CFF5      RJMP	0x064E
     659 2700      CLR	R16
     65A 2711      CLR	R17
     65B 2722      CLR	R18
     65C 2733      CLR	R19
     65D 9189      LD	R24,Y+
     65E 9199      LD	R25,Y+
     65F 9508      RET
     660 2733      CLR	R19
     661 EF0F      LDI	R16,0xFF
     662 2F10      MOV	R17,R16
     663 E72F      LDI	R18,0x7F
     664 2F32      MOV	R19,R18
     665 9189      LD	R24,Y+
     666 9199      LD	R25,Y+
pack:
     667 DFB4      RCALL	tstR16_R19
     668 F039      BEQ	0x0670
     669 5841      SUBI	R20,0x81
     66A 4F5F      SBCI	R21,0xFF
     66B 2F34      MOV	R19,R20
     66C 0F22      LSL	R18
     66D 9536      LSR	R19
     66E 9527      ROR	R18
     66F 2B36      OR	R19,R22
     670 9508      RET
fpneg:
     671 DFAA      RCALL	tstR16_R19
     672 F021      BEQ	0x0677
     673 930F      PUSH	R16
     674 E800      LDI	R16,0x80
     675 2730      EOR	R19,R16
     676 910F      POP	R16
     677 9508      RET
fpneg2:
     678 DFF8      RCALL	fpneg
     679 933A      ST	R19,-Y
     67A 932A      ST	R18,-Y
     67B 931A      ST	R17,-Y
     67C 930A      ST	R16,-Y
     67D 9508      RET
saveR8toR25:
     67E 928A      ST	R8,-Y
     67F 929A      ST	R9,-Y
     680 92AA      ST	R10,-Y
     681 92BA      ST	R11,-Y
     682 92CA      ST	R12,-Y
     683 92DA      ST	R13,-Y
     684 92EA      ST	R14,-Y
     685 92FA      ST	R15,-Y
     686 934A      ST	R20,-Y
     687 935A      ST	R21,-Y
     688 936A      ST	R22,-Y
     689 937A      ST	R23,-Y
     68A 938A      ST	R24,-Y
     68B 939A      ST	R25,-Y
     68C 9508      RET
restoreR8toR25:
     68D 9199      LD	R25,Y+
     68E 9189      LD	R24,Y+
     68F 9179      LD	R23,Y+
     690 9169      LD	R22,Y+
     691 9159      LD	R21,Y+
     692 9149      LD	R20,Y+
     693 90F9      LD	R15,Y+
     694 90E9      LD	R14,Y+
     695 90D9      LD	R13,Y+
     696 90C9      LD	R12,Y+
     697 90B9      LD	R11,Y+
     698 90A9      LD	R10,Y+
     699 9099      LD	R9,Y+
     69A 9089      LD	R8,Y+
     69B 9508      RET
fpmule:
     69C 940E 067E CALL	saveR8toR25
     69E 93AA      ST	R26,-Y
     69F 93BA      ST	R27,-Y
     6A0 940E 0624 CALL	unpacku
     6A2 F1D1      BEQ	0x06DD
     6A3 2EE6      MOV	R14,R22
     6A4 2ED5      MOV	R13,R21
     6A5 2EC4      MOV	R12,R20
     6A6 2EB3      MOV	R11,R19
     6A7 2EA2      MOV	R10,R18
     6A8 2E91      MOV	R9,R17
     6A9 2E80      MOV	R8,R16
     6AA 8100      LDD	R16,Z+0
     6AB 8111      LDD	R17,Z+1
     6AC 8122      LDD	R18,Z+2
     6AD 8133      LDD	R19,Z+3
     6AE 940E 0624 CALL	unpacku
     6B0 F161      BEQ	0x06DD
     6B1 256E      EOR	R22,R14
     6B2 0D4C      ADD	R20,R12
     6B3 1D5D      ADC	R21,R13
     6B4 3840      CPI	R20,0x80
     6B5 0753      CPC	R21,R19
     6B6 F55C      BGE	0x06E2
     6B7 3841      CPI	R20,0x81
     6B8 EF7F      LDI	R23,0xFF
     6B9 0757      CPC	R21,R23
     6BA F164      BLT	0x06E7
     6BB 9EA2      MUL	R10,R18
     6BC 2DB1      MOV	R27,R1
     6BD 2DA0      MOV	R26,R0
     6BE 9E91      MUL	R9,R17
     6BF 2D91      MOV	R25,R1
     6C0 2D80      MOV	R24,R0
     6C1 9EA0      MUL	R10,R16
     6C2 0D80      ADD	R24,R0
     6C3 1D91      ADC	R25,R1
     6C4 1FA3      ADC	R26,R19
     6C5 1FB3      ADC	R27,R19
     6C6 9E82      MUL	R8,R18
     6C7 0D80      ADD	R24,R0
     6C8 1D91      ADC	R25,R1
     6C9 1FA3      ADC	R26,R19
     6CA 1FB3      ADC	R27,R19
     6CB 9E92      MUL	R9,R18
     6CC 0D90      ADD	R25,R0
     6CD 1DA1      ADC	R26,R1
     6CE 1FB3      ADC	R27,R19
     6CF 9EA1      MUL	R10,R17
     6D0 0D90      ADD	R25,R0
     6D1 1DA1      ADC	R26,R1
     6D2 1FB3      ADC	R27,R19
     6D3 2F2B      MOV	R18,R27
     6D4 2F1A      MOV	R17,R26
     6D5 2F09      MOV	R16,R25
     6D6 0F88      LSL	R24
     6D7 1F00      ROL	R16
     6D8 1F11      ROL	R17
     6D9 1F22      ROL	R18
     6DA 1F33      ROL	R19
     6DB 940E 0639 CALL	normalize_and_pack
     6DD 91B9      LD	R27,Y+
     6DE 91A9      LD	R26,Y+
     6DF 940E 068D CALL	restoreR8toR25
     6E1 9508      RET
     6E2 EF0F      LDI	R16,0xFF
     6E3 2F10      MOV	R17,R16
     6E4 E72F      LDI	R18,0x7F
     6E5 E74F      LDI	R20,0x7F
     6E6 CFF6      RJMP	0x06DD
     6E7 2700      CLR	R16
     6E8 2F10      MOV	R17,R16
     6E9 2F20      MOV	R18,R16
     6EA 2F30      MOV	R19,R16
     6EB CFF1      RJMP	0x06DD
fpmule1:
     6EC 93FA      ST	R31,-Y
     6ED 93EA      ST	R30,-Y
     6EE 81EA      LDD	R30,Y+2
     6EF 81FB      LDD	R31,Y+3
     6F0 940E 069C CALL	fpmule
     6F2 91E9      LD	R30,Y+
     6F3 91F9      LD	R31,Y+
     6F4 9622      ADIW	R28,2
     6F5 9508      RET
fpcmp:
     6F6 940E 0486 CALL	fpsub
     6F8 2333      TST	R19
     6F9 F03A      BMI	0x0701
     6FA 940E 061C CALL	tstR16_R19
     6FC F011      BEQ	0x06FF
     6FD E001      LDI	R16,1
     6FE 9508      RET
     6FF 2700      CLR	R16
     700 9508      RET
     701 EF0F      LDI	R16,0xFF
     702 9508      RET
fpcmp2:
     703 93FA      ST	R31,-Y
     704 93EA      ST	R30,-Y
     705 2FEC      MOV	R30,R28
     706 2FFD      MOV	R31,R29
     707 9632      ADIW	R30,2
     708 940E 06F6 CALL	fpcmp
     70A 91E9      LD	R30,Y+
     70B 91F9      LD	R31,Y+
     70C 9624      ADIW	R28,4
     70D 2300      TST	R16
     70E 9508      RET

⌨️ 快捷键说明

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