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

📄 shell.lis

📁 使用8880实现DTMF通信及拨号的程序.
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02D6 F001              movw R30,R0
 02D8 80E0              ldi R24,<_InnerCmd
 02DA 90E0              ldi R25,>_InnerCmd
 02DC E80F              add R30,R24
 02DE F91F              adc R31,R25
 02E0 0081              ldd R16,z+0
 02E2 1181              ldd R17,z+1
 02E4 00D0              rcall _strcmp
 02E6 0030              cpi R16,0
 02E8 0107              cpc R16,R17
 02EA 11F4              brne L88
 02EC           X23:
 02EC                   .dbline 177
 02EC 0A2D              mov R16,R10
 02EE 0FC0              rjmp L84
 02F0           L88:
 02F0                   .dbline 178
 02F0           ;               i++;
 02F0 A394              inc R10
 02F2                   .dbline 179
 02F2           ;       }
 02F2           L86:
 02F2                   .dbline 176
 02F2 86E0              ldi R24,6
 02F4 8A9D              mul R24,R10
 02F6 F001              movw R30,R0
 02F8 80E0              ldi R24,<_InnerCmd
 02FA 90E0              ldi R25,>_InnerCmd
 02FC E80F              add R30,R24
 02FE F91F              adc R31,R25
 0300 2080              ldd R2,z+0
 0302 3180              ldd R3,z+1
 0304 2220              tst R2
 0306 21F7              brne L85
 0308 3320              tst R3
 030A 11F7              brne L85
 030C           X24:
 030C                   .dbline 180
 030C           ;        return -1;
 030C 0FEF              ldi R16,255
 030E                   .dbline -2
 030E           L84:
 030E                   .dbline 0 ; func end
 030E 00C0              rjmp pop_xgset003C
 0310                   .dbsym r i 10 c
 0310                   .dbsym r cmd 12 pc
 0310                   .dbend
 0310                   .dbfunc e ParseCmd _ParseCmd fV
 0310           ;           argv -> y+3
 0310           ;           argc -> y+2
 0310           ;      Cmd_Index -> R20
 0310           ;        cmdline -> R10,R11
                        .even
 0310           _ParseCmd::
 0310 00D0              rcall push_xgset300C
 0312 5801              movw R10,R16
 0314 2D97              sbiw R28,13
 0316                   .dbline -1
 0316                   .dbline 183
 0316           ; }
 0316           ; void ParseCmd(char *cmdline)
 0316           ; {
 0316                   .dbline 186
 0316           ;   signed char argc,Cmd_Index;
 0316           ;   char *argv[5];
 0316           ;   ParseArgs(cmdline,&argc,argv);
 0316 CE01              movw R24,R28
 0318 0396              adiw R24,3
 031A 9983              std y+1,R25
 031C 8883              std y+0,R24
 031E 9E01              movw R18,R28
 0320 2E5F              subi R18,254  ; offset = 2
 0322 3F4F              sbci R19,255
 0324 8501              movw R16,R10
 0326 8FDF              rcall _ParseArgs
 0328                   .dbline 187
 0328           ;   if (argc==0) return;
 0328 2A80              ldd R2,y+2
 032A 2220              tst R2
 032C 09F4              brne L91
 032E           X25:
 032E                   .dbline 187
 032E 2CC0              rjmp L90
 0330           L91:
 0330                   .dbline 188
 0330           ;   Cmd_Index=GetCmdMatch(argv[0]);
 0330 0B81              ldd R16,y+3
 0332 1C81              ldd R17,y+4
 0334 C9DF              rcall _GetCmdMatch
 0336 402F              mov R20,R16
 0338                   .dbline 189
 0338           ;   if (Cmd_Index<0){
 0338 0030              cpi R16,0
 033A 24F4              brge L93
 033C           X26:
 033C                   .dbline 189
 033C                   .dbline 190
 033C           ;        serial_send("unknow command\n");
 033C 00E0              ldi R16,<L95
 033E 10E0              ldi R17,>L95
 0340 00D0              rcall _serial_send
 0342                   .dbline 191
 0342           ;        return;
 0342 22C0              rjmp L90
 0344           L93:
 0344                   .dbline 193
 0344           ;   }
 0344           ;   if (InnerCmd[Cmd_Index].proc)
 0344 06E0              ldi R16,6
 0346 142F              mov R17,R20
 0348 0102              muls R16,R17
 034A F001              movw R30,R0
 034C 80E0              ldi R24,<_InnerCmd+4
 034E 90E0              ldi R25,>_InnerCmd+4
 0350 E80F              add R30,R24
 0352 F91F              adc R31,R25
 0354 2080              ldd R2,z+0
 0356 3180              ldd R3,z+1
 0358 2220              tst R2
 035A 11F4              brne X27
 035C 3320              tst R3
 035E A1F0              breq L96
 0360           X27:
 0360                   .dbline 194
 0360           ;        InnerCmd[Cmd_Index].proc(argc,argv);
 0360 9E01              movw R18,R28
 0362 2D5F              subi R18,253  ; offset = 3
 0364 3F4F              sbci R19,255
 0366 0A81              ldd R16,y+2
 0368 86E0              ldi R24,6
 036A 0F93              push R16
 036C 1F93              push R17
 036E 082F              mov R16,R24
 0370 0102              muls R16,R17
 0372 F001              movw R30,R0
 0374 1F91              pop R17
 0376 0F91              pop R16
 0378 80E0              ldi R24,<_InnerCmd+4
 037A 90E0              ldi R25,>_InnerCmd+4
 037C E80F              add R30,R24
 037E F91F              adc R31,R25
 0380 A081              ldd R26,z+0
 0382 B181              ldd R27,z+1
 0384 FD01              movw R30,R26
 0386 00D0              rcall xicall
 0388           L96:
 0388                   .dbline -2
 0388           L90:
 0388                   .dbline 0 ; func end
 0388 2D96              adiw R28,13
 038A 00C0              rjmp pop_xgset300C
 038C                   .dbsym l argv 3 A[10:5]pc
 038C                   .dbsym l argc 2 C
 038C                   .dbsym r Cmd_Index 20 C
 038C                   .dbsym r cmdline 10 pc
 038C                   .dbend
 038C                   .dbfunc e shellin _shellin fV
 038C           ;            buf -> y+0
                        .even
 038C           _shellin::
 038C E397              sbiw R28,51
 038E                   .dbline -1
 038E                   .dbline 197
 038E           ; } 
 038E           ; void shellin(void)
 038E           ; {      
 038E                   .dbline 199
 038E           ;        char buf[51];
 038E           ;        if (serial_recv(buf,50)>0){
 038E 22E3              ldi R18,50
 0390 30E0              ldi R19,0
 0392 8E01              movw R16,R28
 0394 00D0              rcall _serial_recv
 0396 0030              cpi R16,0
 0398 0107              cpc R16,R17
 039A 11F0              breq L101
 039C           X28:
 039C                   .dbline 199
 039C                   .dbline 200
 039C           ;               ParseCmd(buf);
 039C 8E01              movw R16,R28
 039E B8DF              rcall _ParseCmd
 03A0                   .dbline 201
 03A0           ;        };
 03A0           L101:
 03A0                   .dbline 201
 03A0                   .dbline -2
 03A0           L100:
 03A0                   .dbline 0 ; func end
 03A0 E396              adiw R28,51
 03A2 0895              ret
 03A4                   .dbsym l buf 0 A[51:51]c
 03A4                   .dbend
                        .area data(ram, con, rel)
 002A                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 002A           L95:
 002A                   .blkb 16
                        .area idata
 002A 756E6B6E6F7720636F6D6D616E640A00  .byte 'u,'n,'k,'n,'o,'w,32,'c,'o,'m,'m,'a,'n,'d,10,0
                        .area data(ram, con, rel)
 003A                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 003A           L65:
 003A                   .blkb 23
                        .area idata
 003A 486176656E2774207468697320636F6D  .byte 'H,'a,'v,'e,'n,39,'t,32,'t,'h,'i,'s,32,'c,'o,'m
 004A 6D616E642E0A00    .byte 'm,'a,'n,'d,46,10,0
                        .area data(ram, con, rel)
 0051                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0051           L61:
 0051                   .blkb 3
                        .area idata
 0051 3A0900            .byte 58,9,0
                        .area data(ram, con, rel)
 0054                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0054           L23:
 0054                   .blkb 3
                        .area idata
 0054 6F6E00            .byte 'o,'n,0
                        .area data(ram, con, rel)
 0057                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0057           L12:
 0057                   .blkb 30
                        .area idata
 0057 6175746F20616E737765722074686520  .byte 'a,'u,'t,'o,32,'a,'n,'s,'w,'e,'r,32,'t,'h,'e,32
 0067 72656D6F74652063616C6C2E0A00      .byte 'r,'e,'m,'o,'t,'e,32,'c,'a,'l,'l,46,10,0
                        .area data(ram, con, rel)
 0075                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0075           L11:
 0075                   .blkb 11
                        .area idata
 0075 6175746F616E7377657200    .byte 'a,'u,'t,'o,'a,'n,'s,'w,'e,'r,0
                        .area data(ram, con, rel)
 0080                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0080           L10:
 0080                   .blkb 28
                        .area idata
 0080 726561642061206E756D626572206672  .byte 'r,'e,'a,'d,32,'a,32,'n,'u,'m,'b,'e,'r,32,'f,'r
 0090 6F6D2072656D6F74652E0A00  .byte 'o,'m,32,'r,'e,'m,'o,'t,'e,46,10,0
                        .area data(ram, con, rel)
 009C                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 009C           L9:
 009C                   .blkb 5
                        .area idata
 009C 7265616400        .byte 'r,'e,'a,'d,0
                        .area data(ram, con, rel)
 00A1                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 00A1           L8:
 00A1                   .blkb 27
                        .area idata
 00A1 656E61626C65206F7220646973656E61  .byte 'e,'n,'a,'b,'l,'e,32,'o,'r,32,'d,'i,'s,'e,'n,'a
 00B1 626C65206563686F2E0A00    .byte 'b,'l,'e,32,'e,'c,'h,'o,46,10,0
                        .area data(ram, con, rel)
 00BC                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 00BC           L7:
 00BC                   .blkb 5
                        .area idata
 00BC 6563686F00        .byte 'e,'c,'h,'o,0
                        .area data(ram, con, rel)
 00C1                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 00C1           L6:
 00C1                   .blkb 24
                        .area idata
 00C1 63616E63656C20612063616C6C207072  .byte 'c,'a,'n,'c,'e,'l,32,'a,32,'c,'a,'l,'l,32,'p,'r
 00D1 6F636573732E0A00  .byte 'o,'c,'e,'s,'s,46,10,0
                        .area data(ram, con, rel)
 00D9                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 00D9           L5:
 00D9                   .blkb 7
                        .area idata
 00D9 63616E63656C00    .byte 'c,'a,'n,'c,'e,'l,0
                        .area data(ram, con, rel)
 00E0                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 00E0           L4:
 00E0                   .blkb 37
                        .area idata
 00E0 63616C6C20612074656C70686F6E206E  .byte 'c,'a,'l,'l,32,'a,32,'t,'e,'l,'p,'h,'o,'n,32,'n
 00F0 756D6265722C757365733A63616C6C20  .byte 'u,'m,'b,'e,'r,44,'u,'s,'e,'s,58,'c,'a,'l,'l,32
 0100 3131300A00        .byte 49,49,48,10,0
                        .area data(ram, con, rel)
 0105                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0105           L3:
 0105                   .blkb 5
                        .area idata
 0105 63616C6C00        .byte 'c,'a,'l,'l,0
                        .area data(ram, con, rel)
 010A                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 010A           L2:
 010A                   .blkb 27
                        .area idata
 010A 446573706C6179207468697320696E66  .byte 'D,'e,'s,'p,'l,'a,'y,32,'t,'h,'i,'s,32,'i,'n,'f
 011A 6F726D6174696F6E2E0A00    .byte 'o,'r,'m,'a,'t,'i,'o,'n,46,10,0
                        .area data(ram, con, rel)
 0125                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 0125           L1:
 0125                   .blkb 5
                        .area idata
 0125 68656C7000        .byte 'h,'e,'l,'p,0
                        .area data(ram, con, rel)
 012A                   .dbfile E:\Shuaihu\AVR\8880\shell.c
 012A           ; }
                        .area  func_lit
 0000 2000      PL_autoanswer:  .word `_autoanswer
 0002 0000      PL_read:        .word `_read
 0004 4500      PL_echo:        .word `_echo
 0006 BB00      PL_cancel:      .word `_cancel
 0008 6A00      PL_call:        .word `_call
 000A D900      PL_help:        .word `_help

⌨️ 快捷键说明

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