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

📄 ppp.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 040E 00E0              ldi R16,<_ScratchPad
 0410 10E0              ldi R17,>_ScratchPad
 0412 0E940000          xcall _rstrcpy
 0416                   .dbline 270
 0416           ;                                                       break;
 0416 30C0              xjmp L59
 0418           L65:
 0418                   .dbline 271
 0418           ;               case PPP_TREQ   :       rstrcpy((char*)ScratchPad, TREQStr);
 0418 20E0              ldi R18,<_TREQStr
 041A 30E0              ldi R19,>_TREQStr
 041C 00E0              ldi R16,<_ScratchPad
 041E 10E0              ldi R17,>_ScratchPad
 0420 0E940000          xcall _rstrcpy
 0424                   .dbline 272
 0424           ;                                                       break;
 0424 29C0              xjmp L59
 0426           L66:
 0426                   .dbline 273
 0426           ;               case PPP_TACK   :       rstrcpy((char*)ScratchPad, TACKStr);
 0426 20E0              ldi R18,<_TACKStr
 0428 30E0              ldi R19,>_TACKStr
 042A 00E0              ldi R16,<_ScratchPad
 042C 10E0              ldi R17,>_ScratchPad
 042E 0E940000          xcall _rstrcpy
 0432                   .dbline 274
 0432           ;                                                       break;
 0432 22C0              xjmp L59
 0434           L67:
 0434                   .dbline 275
 0434           ;               case PPP_CodeREJ:       rstrcpy((char*)ScratchPad, CodeREJStr);
 0434 20E0              ldi R18,<_CodeREJStr
 0436 30E0              ldi R19,>_CodeREJStr
 0438 00E0              ldi R16,<_ScratchPad
 043A 10E0              ldi R17,>_ScratchPad
 043C 0E940000          xcall _rstrcpy
 0440                   .dbline 276
 0440           ;                                                       break;
 0440 1BC0              xjmp L59
 0442           L68:
 0442                   .dbline 277
 0442           ;               case PPP_PREJ   :       rstrcpy((char*)ScratchPad, PREJStr);
 0442 20E0              ldi R18,<_PREJStr
 0444 30E0              ldi R19,>_PREJStr
 0446 00E0              ldi R16,<_ScratchPad
 0448 10E0              ldi R17,>_ScratchPad
 044A 0E940000          xcall _rstrcpy
 044E                   .dbline 278
 044E           ;                                                       break;
 044E 14C0              xjmp L59
 0450           L69:
 0450                   .dbline 279
 0450           ;               case PPP_EREQ   :       rstrcpy((char*)ScratchPad, EREQStr);
 0450 20E0              ldi R18,<_EREQStr
 0452 30E0              ldi R19,>_EREQStr
 0454 00E0              ldi R16,<_ScratchPad
 0456 10E0              ldi R17,>_ScratchPad
 0458 0E940000          xcall _rstrcpy
 045C                   .dbline 280
 045C           ;                                                       break;
 045C 0DC0              xjmp L59
 045E           L70:
 045E                   .dbline 281
 045E           ;               case PPP_ERPY   :       rstrcpy((char*)ScratchPad, ERPYStr);
 045E 20E0              ldi R18,<_ERPYStr
 0460 30E0              ldi R19,>_ERPYStr
 0462 00E0              ldi R16,<_ScratchPad
 0464 10E0              ldi R17,>_ScratchPad
 0466 0E940000          xcall _rstrcpy
 046A                   .dbline 282
 046A           ;                                                       break;
 046A 06C0              xjmp L59
 046C           L58:
 046C                   .dbline 283
 046C           ;               default                 :       rstrcpy((char*)ScratchPad, UnknownCodeStr);
 046C 20E0              ldi R18,<_UnknownCodeStr
 046E 30E0              ldi R19,>_UnknownCodeStr
 0470 00E0              ldi R16,<_ScratchPad
 0472 10E0              ldi R17,>_ScratchPad
 0474 0E940000          xcall _rstrcpy
 0478                   .dbline 284
 0478           ;                                                       break;
 0478           L59:
 0478                   .dbline 286
 0478           ;       }
 0478           ;       sprintf((char*)ScratchPad + strlen((char*)ScratchPad), " [%u]  ID:%u   Len:%u\n",  CodeHeader->Code, CodeHeader->ID, ntohs(CodeHeader->Len));
 0478 00E0              ldi R16,<_ScratchPad
 047A 10E0              ldi R17,>_ScratchPad
 047C 0E940000          xcall _strlen
 0480 1801              movw R2,R16
 0482 FA01              movw R30,R20
 0484 0281              ldd R16,z+2
 0486 1381              ldd R17,z+3
 0488 2F92              push R2
 048A 3F92              push R3
 048C 0E940000          xcall _ntohs
 0490 3F90              pop R3
 0492 2F90              pop R2
 0494 1D83              std y+5,R17
 0496 0C83              std y+4,R16
 0498 FA01              movw R30,R20
 049A 4180              ldd R4,z+1
 049C 5524              clr R5
 049E 5B82              std y+3,R5
 04A0 4A82              std y+2,R4
 04A2 FA01              movw R30,R20
 04A4 4080              ldd R4,z+0
 04A6 5524              clr R5
 04A8 5982              std y+1,R5
 04AA 4882              std y+0,R4
 04AC 20E0              ldi R18,<L71
 04AE 30E0              ldi R19,>L71
 04B0 80E0              ldi R24,<_ScratchPad
 04B2 90E0              ldi R25,>_ScratchPad
 04B4 8101              movw R16,R2
 04B6 080F              add R16,R24
 04B8 191F              adc R17,R25
 04BA 0E940000          xcall _sprintf
 04BE                   .dbline 287
 04BE           ;       if (!SendDebugStr((char*)ScratchPad)) return false;
 04BE 00E0              ldi R16,<_ScratchPad
 04C0 10E0              ldi R17,>_ScratchPad
 04C2 0E940000          xcall _SendDebugStr
 04C6 0023              tst R16
 04C8 11F4              brne L72
 04CA                   .dbline 287
 04CA 0027              clr R16
 04CC B4C1              xjmp L34
 04CE           L72:
 04CE                   .dbline 292
 04CE           ; 
 04CE           ;       // ********************
 04CE           ;       // display the options (if any)
 04CE           ; 
 04CE           ;       if ((Protocol == PPP_LCP) || (Protocol == PPP_IPCP))
 04CE C701              movw R24,R14
 04D0 8132              cpi R24,33
 04D2 E0EC              ldi R30,192
 04D4 9E07              cpc R25,R30
 04D6 29F0              breq L76
 04D8 8132              cpi R24,33
 04DA E0E8              ldi R30,128
 04DC 9E07              cpc R25,R30
 04DE 09F0              breq X13
 04E0 A9C1              xjmp L74
 04E2           X13:
 04E2           L76:
 04E2                   .dbline 293
 04E2           ;       {
 04E2                   .dbline 294
 04E2           ;               if ((CodeHeader->Code == PPP_CREQ) || (CodeHeader->Code == PPP_CACK) || (CodeHeader->Code == PPP_CNAK) || (CodeHeader->Code == PPP_CREJ))
 04E2 FA01              movw R30,R20
 04E4 2080              ldd R2,z+0
 04E6 3324              clr R3
 04E8 822D              mov R24,R2
 04EA 8130              cpi R24,1
 04EC 39F0              breq L81
 04EE 8230              cpi R24,2
 04F0 29F0              breq L81
 04F2 8330              cpi R24,3
 04F4 19F0              breq L81
 04F6 8430              cpi R24,4
 04F8 09F0              breq X14
 04FA 9CC1              xjmp L77
 04FC           X14:
 04FC           L81:
 04FC                   .dbline 295
 04FC           ;               {
 04FC 92C1              xjmp L83
 04FE           L82:
 04FE                   .dbline 297
 04FE           ;                       while ((i + 2) <= Bytes)
 04FE           ;                       {
 04FE                   .dbline 298
 04FE           ;                               type = MainBuffer[i + 0];
 04FE 80E0              ldi R24,<_MainBuffer
 0500 90E0              ldi R25,>_MainBuffer
 0502 EA85              ldd R30,y+10
 0504 FB85              ldd R31,y+11
 0506 E80F              add R30,R24
 0508 F91F              adc R31,R25
 050A C080              ldd R12,z+0
 050C                   .dbline 299
 050C           ;                               len = MainBuffer[i + 1];
 050C EA85              ldd R30,y+10
 050E FB85              ldd R31,y+11
 0510 3196              adiw R30,1
 0512 E80F              add R30,R24
 0514 F91F              adc R31,R25
 0516 A080              ldd R10,z+0
 0518                   .dbline 300
 0518           ;                               if (len < 2) len = 2;
 0518 8A2D              mov R24,R10
 051A 8230              cpi R24,2
 051C 10F4              brsh L85
 051E                   .dbline 300
 051E 82E0              ldi R24,2
 0520 A82E              mov R10,R24
 0522           L85:
 0522                   .dbline 301
 0522           ;                               sprintf((char*)ScratchPad, "    type:%u     len:%u", type, len);
 0522 2A2C              mov R2,R10
 0524 3324              clr R3
 0526 3B82              std y+3,R3
 0528 2A82              std y+2,R2
 052A 2C2C              mov R2,R12
 052C 3324              clr R3
 052E 3982              std y+1,R3
 0530 2882              std y+0,R2
 0532 20E0              ldi R18,<L87
 0534 30E0              ldi R19,>L87
 0536 00E0              ldi R16,<_ScratchPad
 0538 10E0              ldi R17,>_ScratchPad
 053A 0E940000          xcall _sprintf
 053E                   .dbline 302
 053E           ;                               if (Protocol == PPP_IPCP)
 053E C701              movw R24,R14
 0540 8132              cpi R24,33
 0542 E0E8              ldi R30,128
 0544 9E07              cpc R25,R30
 0546 09F0              breq X15
 0548 5FC0              xjmp L88
 054A           X15:
 054A                   .dbline 303
 054A           ;                               {
 054A                   .dbline 304
 054A           ;                                       if (type == 2)
 054A 8C2D              mov R24,R12
 054C 8230              cpi R24,2
 054E 21F5              brne L90
 0550                   .dbline 305
 0550           ;                                       {
 0550                   .dbline 306
 0550           ;                                               if (len >= 2)
 0550 8A2D              mov R24,R10
 0552 8230              cpi R24,2
 0554 08F4              brsh X16
 0556 4FC1              xjmp L89
 0558           X16:
 0558                   .dbline 307
 0558           ;                                               {
 0558                   .dbline 308
 0558           ;                                                       strcat((char*)ScratchPad, "   comp-prot: ");
 0558 20E0              ldi R18,<L94
 055A 30E0              ldi R19,>L94
 055C 00E0              ldi R16,<_ScratchPad
 055E 10E0              ldi R17,>_ScratchPad
 0560 0E940000          xcall _strcat
 0564                   .dbline 309
 0564           ;                                                       j = ntohs(*(u16*)(MainBuffer + i + 2));
 0564 80E0              ldi R24,<_MainBuffer+2
 0566 90E0              ldi R25,>_MainBuffer+2
 0568 EA85              ldd R30,y+10
 056A FB85              ldd R31,y+11
 056C E80F              add R30,R24
 056E F91F              adc R31,R25
 0570 0081              ldd R16,z+0
 0572 1181              ldd R17,z+1
 0574 0E940000          xcall _ntohs
 0578 B801              movw R22,R16
 057A                   .dbline 310
 057A           ;                                                       sprintf((char*)ScratchPad + strlen((char*)ScratchPad), "%04X", j);
 057A 00E0              ldi R16,<_ScratchPad
 057C 10E0              ldi R17,>_ScratchPad
 057E 0E940000          xcall _strlen
 0582 7983              std y+1,R23
 0584 6883              std y+0,R22
 0586 20E0              ldi R18,<L96
 0588 30E0              ldi R19,>L96
 058A 80E0              ldi R24,<_ScratchPad
 058C 90E0              ldi R25,>_ScratchPad
 058E 080F              add R16,R24
 0590 191F              adc R17,R25
 0592 0E940000          xc

⌨️ 快捷键说明

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