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

📄 计算器.lis

📁 八位整数的+-*/
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 04E0 82E0              ldi R24,2
 04E2 85BF              out 0x35,R24
 04E4                   .dbline 162
 04E4           ;        GICR|=BIT(6);
 04E4 8BB7              in R24,0x3b
 04E6 8064              ori R24,64
 04E8 8BBF              out 0x3b,R24
 04EA                   .dbline 163
 04EA           ;        SREG|=BIT(7);
 04EA 7894              bset 7
 04EC FEC0              xjmp L89
 04EE           L88:
 04EE                   .dbline 166
 04EE           ;        
 04EE           ;        while(1)
 04EE           ;        {      
 04EE                   .dbline 167
 04EE           ;               if(i!=0xff)
 04EE 80911400          lds R24,_i
 04F2 8F3F              cpi R24,255
 04F4 09F4              brne X45
 04F6 EDC0              xjmp L91
 04F8           X45:
 04F8           X31:
 04F8                   .dbline 168
 04F8           ;               {        
 04F8                   .dbline 169
 04F8           ;                  if(i<10){ a=10*a+i;i=0xff;}
 04F8 8A30              cpi R24,10
 04FA 00F5              brsh L93
 04FC           X32:
 04FC                   .dbline 169
 04FC                   .dbline 169
 04FC 00E0              ldi R16,<L51
 04FE 10E0              ldi R17,>L51
 0500 0E940000          xcall lpm32
 0504 CE01              movw R24,R28
 0506 9A93              st -y,R25
 0508 8A93              st -y,R24
 050A 0E940000          xcall fpmule1
 050E 1801              movw R2,R16
 0510 2901              movw R4,R18
 0512 00911400          lds R16,_i
 0516 1127              clr R17
 0518 0E940000          xcall int2fp
 051C 3A93              st -y,R19
 051E 2A93              st -y,R18
 0520 1A93              st -y,R17
 0522 0A93              st -y,R16
 0524 8101              movw R16,R2
 0526 9201              movw R18,R4
 0528 0E940000          xcall fpadd2
 052C 0883              std y+0,R16
 052E 1983              std y+1,R17
 0530 2A83              std y+2,R18
 0532 3B83              std y+3,R19
 0534                   .dbline 169
 0534 8FEF              ldi R24,255
 0536 80931400          sts _i,R24
 053A                   .dbline 169
 053A CBC0              xjmp L94
 053C           L93:
 053C                   .dbline 171
 053C           ;                  else
 053C           ;                  {
 053C                   .dbline 172
 053C           ;                               if(i=='+'){ sign=1;b=a;a=0;}
 053C 80911400          lds R24,_i
 0540 8B32              cpi R24,43
 0542 99F4              brne L95
 0544           X33:
 0544                   .dbline 172
 0544                   .dbline 172
 0544 81E0              ldi R24,1
 0546 80930000          sts _sign,R24
 054A                   .dbline 172
 054A 2880              ldd R2,y+0
 054C 3980              ldd R3,y+1
 054E 4A80              ldd R4,y+2
 0550 5B80              ldd R5,y+3
 0552 2C82              std y+4,R2
 0554 3D82              std y+5,R3
 0556 4E82              std y+6,R4
 0558 5F82              std y+7,R5
 055A                   .dbline 172
 055A 00E0              ldi R16,<L37
 055C 10E0              ldi R17,>L37
 055E 0E940000          xcall lpm32
 0562 0883              std y+0,R16
 0564 1983              std y+1,R17
 0566 2A83              std y+2,R18
 0568 3B83              std y+3,R19
 056A                   .dbline 172
 056A           L95:
 056A                   .dbline 173
 056A           ;                               if(i=='-'){ sign=2;b=a;a=0;}
 056A 80911400          lds R24,_i
 056E 8D32              cpi R24,45
 0570 99F4              brne L97
 0572           X34:
 0572                   .dbline 173
 0572                   .dbline 173
 0572 82E0              ldi R24,2
 0574 80930000          sts _sign,R24
 0578                   .dbline 173
 0578 2880              ldd R2,y+0
 057A 3980              ldd R3,y+1
 057C 4A80              ldd R4,y+2
 057E 5B80              ldd R5,y+3
 0580 2C82              std y+4,R2
 0582 3D82              std y+5,R3
 0584 4E82              std y+6,R4
 0586 5F82              std y+7,R5
 0588                   .dbline 173
 0588 00E0              ldi R16,<L37
 058A 10E0              ldi R17,>L37
 058C 0E940000          xcall lpm32
 0590 0883              std y+0,R16
 0592 1983              std y+1,R17
 0594 2A83              std y+2,R18
 0596 3B83              std y+3,R19
 0598                   .dbline 173
 0598           L97:
 0598                   .dbline 174
 0598           ;                               if(i=='*'){ sign=3;b=a;a=0;}
 0598 80911400          lds R24,_i
 059C 8A32              cpi R24,42
 059E 99F4              brne L99
 05A0           X35:
 05A0                   .dbline 174
 05A0                   .dbline 174
 05A0 83E0              ldi R24,3
 05A2 80930000          sts _sign,R24
 05A6                   .dbline 174
 05A6 2880              ldd R2,y+0
 05A8 3980              ldd R3,y+1
 05AA 4A80              ldd R4,y+2
 05AC 5B80              ldd R5,y+3
 05AE 2C82              std y+4,R2
 05B0 3D82              std y+5,R3
 05B2 4E82              std y+6,R4
 05B4 5F82              std y+7,R5
 05B6                   .dbline 174
 05B6 00E0              ldi R16,<L37
 05B8 10E0              ldi R17,>L37
 05BA 0E940000          xcall lpm32
 05BE 0883              std y+0,R16
 05C0 1983              std y+1,R17
 05C2 2A83              std y+2,R18
 05C4 3B83              std y+3,R19
 05C6                   .dbline 174
 05C6           L99:
 05C6                   .dbline 175
 05C6           ;                               if(i=='/'){ sign=4;b=a;a=0;}
 05C6 80911400          lds R24,_i
 05CA 8F32              cpi R24,47
 05CC 99F4              brne L101
 05CE           X36:
 05CE                   .dbline 175
 05CE                   .dbline 175
 05CE 84E0              ldi R24,4
 05D0 80930000          sts _sign,R24
 05D4                   .dbline 175
 05D4 2880              ldd R2,y+0
 05D6 3980              ldd R3,y+1
 05D8 4A80              ldd R4,y+2
 05DA 5B80              ldd R5,y+3
 05DC 2C82              std y+4,R2
 05DE 3D82              std y+5,R3
 05E0 4E82              std y+6,R4
 05E2 5F82              std y+7,R5
 05E4                   .dbline 175
 05E4 00E0              ldi R16,<L37
 05E6 10E0              ldi R17,>L37
 05E8 0E940000          xcall lpm32
 05EC 0883              std y+0,R16
 05EE 1983              std y+1,R17
 05F0 2A83              std y+2,R18
 05F2 3B83              std y+3,R19
 05F4                   .dbline 175
 05F4           L101:
 05F4                   .dbline 176
 05F4           ;                               if(i=='C'){ sign=0;a=0;b=0;}
 05F4 80911400          lds R24,_i
 05F8 8334              cpi R24,67
 05FA 99F4              brne L103
 05FC           X37:
 05FC                   .dbline 176
 05FC                   .dbline 176
 05FC 2224              clr R2
 05FE 20920000          sts _sign,R2
 0602                   .dbline 176
 0602 00E0              ldi R16,<L37
 0604 10E0              ldi R17,>L37
 0606 0E940000          xcall lpm32
 060A 0883              std y+0,R16
 060C 1983              std y+1,R17
 060E 2A83              std y+2,R18
 0610 3B83              std y+3,R19
 0612                   .dbline 176
 0612 00E0              ldi R16,<L37
 0614 10E0              ldi R17,>L37
 0616 0E940000          xcall lpm32
 061A 0C83              std y+4,R16
 061C 1D83              std y+5,R17
 061E 2E83              std y+6,R18
 0620 3F83              std y+7,R19
 0622                   .dbline 176
 0622           L103:
 0622                   .dbline 177
 0622           ;                               if(i=='=')
 0622 80911400          lds R24,_i
 0626 8D33              cpi R24,61
 0628 09F0              breq X46
 062A 50C0              xjmp L105
 062C           X46:
 062C           X38:
 062C                   .dbline 178
 062C           ;                               { switch(sign)
 062C                   .dbline 178
 062C 60910000          lds R22,_sign
 0630 7727              clr R23
 0632 6130              cpi R22,1
 0634 E0E0              ldi R30,0
 0636 7E07              cpc R23,R30
 0638 69F0              breq L110
 063A           X39:
 063A 6230              cpi R22,2
 063C E0E0              ldi R30,0
 063E 7E07              cpc R23,R30
 0640 C1F0              breq L111
 0642           X40:
 0642 6330              cpi R22,3
 0644 E0E0              ldi R30,0
 0646 7E07              cpc R23,R30
 0648 11F1              breq L112
 064A           X41:
 064A 6430              cpi R22,4
 064C E0E0              ldi R30,0
 064E 7E07              cpc R23,R30
 0650 69F1              breq L113
 0652           X42:
 0652 39C0              xjmp L108
 0654           L110:
 0654                   .dbline 180
 0654           ;                                 {
 0654           ;                                       case 1:a=a+b;break;
 0654 0881              ldd R16,y+0
 0656 1981              ldd R17,y+1
 0658 2A81              ldd R18,y+2
 065A 3B81              ldd R19,y+3
 065C CE01              movw R24,R28
 065E 0496              adiw R24,4
 0660 9A93              st -y,R25
 0662 8A93              st -y,R24
 0664 0E940000          xcall fpadd1
 0668 0883              std y+0,R16
 066A 1983              std y+1,R17
 066C 2A83              std y+2,R18
 066E 3B83              std y+3,R19
 0670                   .dbline 180
 0670 2AC0              xjmp L108
 0672           L111:
 0672                   .dbline 181
 0672           ;                                       case 2:a=b-a;break;
 0672 0C81              ldd R16,y+4
 0674 1D81              ldd R17,y+5
 0676 2E81              ldd R18,y+6
 0678 3F81              ldd R19,y+7
 067A CE01              movw R24,R28
 067C 9A93              st -y,R25
 067E 8A93              st -y,R24
 0680 0E940000          xcall fpsub1
 0684 0883              std y+0,R16
 0686 1983              std y+1,R17
 0688 2A83              std y+2,R18
 068A 3B83              std y+3,R19
 068C                   .dbline 181
 068C 1CC0              xjmp L108
 068E           L112:
 068E                   .dbline 182
 068E           ;                                       case 3:a=a*b;break;
 068E 0881              ldd R16,y+0
 0690 1981              ldd R17,y+1
 0692 2A81              ldd R18,y+2
 0694 3B81              ldd R19,y+3
 0696 CE01              movw R24,R28
 0698 0496              adiw R24,4
 069A 9A93              st -y,R25
 069C 8A93              st -y,R24
 069E 0E940000          xcall fpmule1
 06A2 0883              std y+0,R16
 06A4 1983              std y+1,R17
 06A6 2A83              std y+2,R18
 06A8 3B83              std y+3,R19
 06AA                   .dbline 182
 06AA 0DC0              xjmp L108
 06AC           L113:
 06AC                   .dbline 183
 06AC           ;                                       case 4:a=b/a;break;
 06AC 0C81              ldd R16,y+4
 06AE 1D81              ldd R17,y+5
 06B0 2E81              ldd R18,y+6
 06B2 3F81              ldd R19,y+7
 06B4 CE01              movw R24,R28
 06B6 9A93              st -y,R25
 06B8 8A93              st -y,R24
 06BA 0E940000          xcall fpdiv1
 06BE 0883              std y+0,R16
 06C0 1983              std y+1,R17
 06C2 2A83              std y+2,R18
 06C4 3B83              std y+3,R19
 06C6                   .dbline 183
 06C6                   .dbline 184
 06C6           ;                                       default: break;
 06C6           L108:
 06C6                   .dbline 186
 06C6           ;                                 }
 06C6           ;                                 sign=0;
 06C6 2224              clr R2
 06C8 20920000          sts _sign,R2
 06CC                   .dbline 187
 06CC           ;                          }
 06CC           L105:
 06CC                   .dbline 188
 06CC           ;                   i=0xff;    
 06CC 8FEF              ldi R24,255
 06CE 80931400          sts _i,R24
 06D2                   .dbline 189
 06D2           ;                  }
 06D2           L94:
 06D2                   .dbline 190
 06D2           ;               }
 06D2           L91:
 06D2                   .dbline 191
 06D2           ;       t=0x0f;
 06D2 4FE0              ldi R20,15
 06D4 05C0              xjmp L115
 06D6           L114:
 06D6                   .dbline 192
 06D6           ;       while(t--)display(a);
 06D6 0881              ldd R16,y+0
 06D8 1981              ldd R17,y+1
 06DA 2A81              ldd R18,y+2
 06DC 3B81              ldd R19,y+3
 06DE 9DDD              xcall _display
 06E0           L115:
 06E0                   .dbline 192
 06E0 242E              mov R2,R20
 06E2 3324              clr R3
 06E4 4150              subi R20,1
 06E6 2220              tst R2
 06E8 B1F7              brne L114
 06EA           X43:
 06EA                   .dbline 193
 06EA           ;       }
 06EA           L89:
 06EA                   .dbline 165
 06EA 01CF              xjmp L88
 06EC           X44:
 06EC                   .dbline -2
 06EC           L87:
 06EC                   .dbline 0 ; func end
 06EC 2896              adiw R28,8
 06EE 0895              ret
 06F0                   .dbsym l key 1 i
 06F0                   .dbsym r n 22 i
 06F0                   .dbsym l b 4 D
 06F0                   .dbsym r t 20 c
 06F0                   .dbsym l a 0 D
 06F0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\avr工程\计算器\计算器\程序\计算器.c
 0000           _sign::
 0000                   .blkb 1
 0001                   .dbsym e sign _sign c
                        .area lit(rom, con, rel)
 0000           L51:
 0000 00002041          .word 0x0,0x4120
 0004           L37:
 0004 00000000          .word 0x0,0x0
 0008           ; }
 0008           ;        
 0008           ;        

⌨️ 快捷键说明

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