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

📄 计算器.lis

📁 八位整数的+-*/
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0352                   .dbline 99
 0352 A394              inc R10
 0354           L46:
 0354                   .dbline 99
 0354 8A2D              mov R24,R10
 0356 8830              cpi R24,8
 0358 C8F2              brlo L43
 035A           X12:
 035A                   .dbline 104
 035A           ;                        
 035A           ;                       for(wei=7-t;wei+1>0;wei--)//小数部分显示
 035A 87E0              ldi R24,7
 035C A82E              mov R10,R24
 035E AC18              sub R10,R12
 0360 22C0              xjmp L50
 0362           L47:
 0362                   .dbline 105
 0362           ;                       {                                               
 0362                   .dbline 106
 0362           ;                               n*=10;  
 0362 00E0              ldi R16,<L51
 0364 10E0              ldi R17,>L51
 0366 0E940000          xcall lpm32
 036A CE01              movw R24,R28
 036C 0496              adiw R24,4
 036E 9A93              st -y,R25
 0370 8A93              st -y,R24
 0372 0E940000          xcall fpmule1
 0376 0C83              std y+4,R16
 0378 1D83              std y+5,R17
 037A 2E83              std y+6,R18
 037C 3F83              std y+7,R19
 037E                   .dbline 107
 037E           ;                               show(wei,(long)n%10);
 037E 4AE0              ldi R20,10
 0380 50E0              ldi R21,0
 0382 60E0              ldi R22,0
 0384 70E0              ldi R23,0
 0386 0C81              ldd R16,y+4
 0388 1D81              ldd R17,y+5
 038A 2E81              ldd R18,y+6
 038C 3F81              ldd R19,y+7
 038E 0E940000          xcall fpint
 0392 7A93              st -y,R23
 0394 6A93              st -y,R22
 0396 5A93              st -y,R21
 0398 4A93              st -y,R20
 039A 0E940000          xcall mod32s
 039E 202F              mov R18,R16
 03A0 0A2D              mov R16,R10
 03A2 9DDE              xcall _show
 03A4                   .dbline 108
 03A4           ;                       }
 03A4           L48:
 03A4                   .dbline 104
 03A4 AA94              dec R10
 03A6           L50:
 03A6                   .dbline 104
 03A6 80E0              ldi R24,0
 03A8 9A2D              mov R25,R10
 03AA 9F5F              subi R25,255    ; addi 1
 03AC 8917              cp R24,R25
 03AE C8F2              brlo L47
 03B0           X13:
 03B0                   .dbline 109
 03B0           ;       }
 03B0           L36:
 03B0                   .dbline -2
 03B0           L34:
 03B0                   .dbline 0 ; func end
 03B0 2C96              adiw R28,12
 03B2 0E940000          xcall pop_xgsetF0FC
 03B6 2496              adiw R28,4
 03B8 0895              ret
 03BA                   .dbsym r t 12 c
 03BA                   .dbsym l j 8 L
 03BA                   .dbsym r x 10 c
 03BA                   .dbsym r wei 10 c
 03BA                   .dbsym l n 4 D
 03BA                   .dbsym l i 0 L
 03BA                   .dbsym l a 22 D
 03BA                   .dbend
 03BA                   .dbfunc e keyscan _keyscan fi
 03BA           ;              j -> R22,R23
 03BA           ;              i -> R20,R21
                        .even
 03BA           _keyscan::
 03BA 0E940000          xcall push_xgsetF000
 03BE                   .dbline -1
 03BE                   .dbline 117
 03BE           ; }
 03BE           ; 
 03BE           ; 
 03BE           ; 
 03BE           ;       
 03BE           ; 
 03BE           ; uint keyscan()
 03BE           ; {              
 03BE                   .dbline 119
 03BE           ;       uint i,j;
 03BE           ;       InitC_0();
 03BE 85DE              xcall _InitC_0
 03C0                   .dbline 121
 03C0           ;       //delay(10);
 03C0           ;       i=PINC;
 03C0 43B3              in R20,0x13
 03C2 5527              clr R21
 03C4                   .dbline 122
 03C4           ;       if(i==0x0f)return 0xff;
 03C4 4F30              cpi R20,15
 03C6 E0E0              ldi R30,0
 03C8 5E07              cpc R21,R30
 03CA 19F4              brne L53
 03CC           X14:
 03CC                   .dbline 122
 03CC 0FEF              ldi R16,255
 03CE 10E0              ldi R17,0
 03D0 7BC0              xjmp L52
 03D2           L53:
 03D2                   .dbline 123
 03D2           ;       i&=0x0f;
 03D2 4F70              andi R20,15
 03D4 5070              andi R21,0
 03D6                   .dbline 124
 03D6           ;       InitC_1();
 03D6 7EDE              xcall _InitC_1
 03D8                   .dbline 125
 03D8           ;       j=PINC;
 03D8 63B3              in R22,0x13
 03DA 7727              clr R23
 03DC                   .dbline 126
 03DC           ;       j&=0xf0;
 03DC 607F              andi R22,240
 03DE 7070              andi R23,0
 03E0                   .dbline 127
 03E0           ;       i|=j;
 03E0 462B              or R20,R22
 03E2 572B              or R21,R23
 03E4                   .dbline 128
 03E4           ;       if(i==0xD7)return 0;      //0   11010111
 03E4 473D              cpi R20,215
 03E6 E0E0              ldi R30,0
 03E8 5E07              cpc R21,R30
 03EA 19F4              brne L55
 03EC           X15:
 03EC                   .dbline 128
 03EC 0027              clr R16
 03EE 1127              clr R17
 03F0 6BC0              xjmp L52
 03F2           L55:
 03F2                   .dbline 129
 03F2           ;       if(i==0xEB)return 1;      //1   11101011
 03F2 4B3E              cpi R20,235
 03F4 E0E0              ldi R30,0
 03F6 5E07              cpc R21,R30
 03F8 19F4              brne L57
 03FA           X16:
 03FA                   .dbline 129
 03FA 01E0              ldi R16,1
 03FC 10E0              ldi R17,0
 03FE 64C0              xjmp L52
 0400           L57:
 0400                   .dbline 130
 0400           ;       if(i==0xDB)return 2;      //2   11011011
 0400 4B3D              cpi R20,219
 0402 E0E0              ldi R30,0
 0404 5E07              cpc R21,R30
 0406 19F4              brne L59
 0408           X17:
 0408                   .dbline 130
 0408 02E0              ldi R16,2
 040A 10E0              ldi R17,0
 040C 5DC0              xjmp L52
 040E           L59:
 040E                   .dbline 131
 040E           ;       if(i==0xBB)return 3;      //3   10111011
 040E 4B3B              cpi R20,187
 0410 E0E0              ldi R30,0
 0412 5E07              cpc R21,R30
 0414 19F4              brne L61
 0416           X18:
 0416                   .dbline 131
 0416 03E0              ldi R16,3
 0418 10E0              ldi R17,0
 041A 56C0              xjmp L52
 041C           L61:
 041C                   .dbline 132
 041C           ;       if(i==0xED)return 4;      //4   11101101
 041C 4D3E              cpi R20,237
 041E E0E0              ldi R30,0
 0420 5E07              cpc R21,R30
 0422 19F4              brne L63
 0424           X19:
 0424                   .dbline 132
 0424 04E0              ldi R16,4
 0426 10E0              ldi R17,0
 0428 4FC0              xjmp L52
 042A           L63:
 042A                   .dbline 133
 042A           ;       if(i==0xDD)return 5;      //5   11011101
 042A 4D3D              cpi R20,221
 042C E0E0              ldi R30,0
 042E 5E07              cpc R21,R30
 0430 19F4              brne L65
 0432           X20:
 0432                   .dbline 133
 0432 05E0              ldi R16,5
 0434 10E0              ldi R17,0
 0436 48C0              xjmp L52
 0438           L65:
 0438                   .dbline 134
 0438           ;       if(i==0xBD)return 6;      //6   10111101
 0438 4D3B              cpi R20,189
 043A E0E0              ldi R30,0
 043C 5E07              cpc R21,R30
 043E 19F4              brne L67
 0440           X21:
 0440                   .dbline 134
 0440 06E0              ldi R16,6
 0442 10E0              ldi R17,0
 0444 41C0              xjmp L52
 0446           L67:
 0446                   .dbline 135
 0446           ;       if(i==0xEE)return 7;      //7   11101110
 0446 4E3E              cpi R20,238
 0448 E0E0              ldi R30,0
 044A 5E07              cpc R21,R30
 044C 19F4              brne L69
 044E           X22:
 044E                   .dbline 135
 044E 07E0              ldi R16,7
 0450 10E0              ldi R17,0
 0452 3AC0              xjmp L52
 0454           L69:
 0454                   .dbline 136
 0454           ;       if(i==0xDE)return 8;      //8   11011110
 0454 4E3D              cpi R20,222
 0456 E0E0              ldi R30,0
 0458 5E07              cpc R21,R30
 045A 19F4              brne L71
 045C           X23:
 045C                   .dbline 136
 045C 08E0              ldi R16,8
 045E 10E0              ldi R17,0
 0460 33C0              xjmp L52
 0462           L71:
 0462                   .dbline 137
 0462           ;       if(i==0xBE)return 9;      //9   10111110
 0462 4E3B              cpi R20,190
 0464 E0E0              ldi R30,0
 0466 5E07              cpc R21,R30
 0468 19F4              brne L73
 046A           X24:
 046A                   .dbline 137
 046A 09E0              ldi R16,9
 046C 10E0              ldi R17,0
 046E 2CC0              xjmp L52
 0470           L73:
 0470                   .dbline 138
 0470           ;       if(i==0xB7)return '=';    //=   10110111
 0470 473B              cpi R20,183
 0472 E0E0              ldi R30,0
 0474 5E07              cpc R21,R30
 0476 19F4              brne L75
 0478           X25:
 0478                   .dbline 138
 0478 0DE3              ldi R16,61
 047A 10E0              ldi R17,0
 047C 25C0              xjmp L52
 047E           L75:
 047E                   .dbline 139
 047E           ;       if(i==0x77)return '+';    //+   01110111
 047E 4737              cpi R20,119
 0480 E0E0              ldi R30,0
 0482 5E07              cpc R21,R30
 0484 19F4              brne L77
 0486           X26:
 0486                   .dbline 139
 0486 0BE2              ldi R16,43
 0488 10E0              ldi R17,0
 048A 1EC0              xjmp L52
 048C           L77:
 048C                   .dbline 140
 048C           ;       if(i==0x7B)return '-';    //-   01111011
 048C 4B37              cpi R20,123
 048E E0E0              ldi R30,0
 0490 5E07              cpc R21,R30
 0492 19F4              brne L79
 0494           X27:
 0494                   .dbline 140
 0494 0DE2              ldi R16,45
 0496 10E0              ldi R17,0
 0498 17C0              xjmp L52
 049A           L79:
 049A                   .dbline 141
 049A           ;       if(i==0x7D)return '*';    //*   01111101
 049A 4D37              cpi R20,125
 049C E0E0              ldi R30,0
 049E 5E07              cpc R21,R30
 04A0 19F4              brne L81
 04A2           X28:
 04A2                   .dbline 141
 04A2 0AE2              ldi R16,42
 04A4 10E0              ldi R17,0
 04A6 10C0              xjmp L52
 04A8           L81:
 04A8                   .dbline 142
 04A8           ;       if(i==0x7E)return '/';    ///   01111110
 04A8 4E37              cpi R20,126
 04AA E0E0              ldi R30,0
 04AC 5E07              cpc R21,R30
 04AE 19F4              brne L83
 04B0           X29:
 04B0                   .dbline 142
 04B0 0FE2              ldi R16,47
 04B2 10E0              ldi R17,0
 04B4 09C0              xjmp L52
 04B6           L83:
 04B6                   .dbline 143
 04B6           ;       if(i==0xe7)return 'C';
 04B6 473E              cpi R20,231
 04B8 E0E0              ldi R30,0
 04BA 5E07              cpc R21,R30
 04BC 19F4              brne L85
 04BE           X30:
 04BE                   .dbline 143
 04BE 03E4              ldi R16,67
 04C0 10E0              ldi R17,0
 04C2 02C0              xjmp L52
 04C4           L85:
 04C4                   .dbline 144
 04C4           ;       else return 0xff;
 04C4 0FEF              ldi R16,255
 04C6 10E0              ldi R17,0
 04C8                   .dbline -2
 04C8           L52:
 04C8                   .dbline 0 ; func end
 04C8 0C940000          xjmp pop_xgsetF000
 04CC                   .dbsym r j 22 i
 04CC                   .dbsym r i 20 i
 04CC                   .dbend
 04CC                   .dbfunc e main _main fV
 04CC           ;            key -> <dead>
 04CC           ;              n -> R22,R23
 04CC           ;              b -> y+4
 04CC           ;              t -> R20
 04CC           ;              a -> y+0
                        .even
 04CC           _main::
 04CC 2897              sbiw R28,8
 04CE                   .dbline -1
 04CE                   .dbline 152
 04CE           ; }
 04CE           ; 
 04CE           ; 
 04CE           ; 
 04CE           ;       
 04CE           ; 
 04CE           ; void main(void)
 04CE           ; {
 04CE                   .dbline 154
 04CE           ;        float a,b;
 04CE           ;        uchar t=0xff;
 04CE 4FEF              ldi R20,255
 04D0                   .dbline 155
 04D0           ;        uint n=5821;
 04D0 6DEB              ldi R22,5821
 04D2 76E1              ldi R23,22
 04D4                   .dbline 157
 04D4           ;        uint key;
 04D4           ;        DDRA=0XFF;
 04D4 8FEF              ldi R24,255
 04D6 8ABB              out 0x1a,R24
 04D8                   .dbline 158
 04D8           ;        PORTA=0Xff;
 04D8 8BBB              out 0x1b,R24
 04DA                   .dbline 159
 04DA           ;        DDRB=0X03;
 04DA 83E0              ldi R24,3
 04DC 87BB              out 0x17,R24
 04DE                   .dbline 160
 04DE           ;        InitC_0();
 04DE F5DD              xcall _InitC_0
 04E0                   .dbline 161
 04E0           ;        MCUCR=2;        //设置INT0为下降沿触发中断

⌨️ 快捷键说明

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