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

📄 ppp.lis

📁 在串口上PPP拨号上网的源程序(实现PPP协议栈)
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 049E BACF              xjmp L73
 04A0           X16:
 04A0           X7:
 04A0                   .dbline 204
 04A0           ;                         {
 04A0           ;                           temp_buffer1[j]=InBuffer[length1];//读取LCP 协商类型
 04A0           ;                           temp_buffer2[j]=length1;          //读取LCP 各个协商类型在缓冲中的位置
 04A0           ;                           length0-=InBuffer[length1+1];     //
 04A0           ;                           length1+=InBuffer[length1+1];     //
 04A0           ;                           j++;
 04A0           ;                         }//end of while(length0)
 04A0           ;                         Move (InBuffer, OutBuffer, 8);
 04A0 88E0              ldi R24,8
 04A2 90E0              ldi R25,0
 04A4 9983              std y+1,R25
 04A6 8883              std y+0,R24
 04A8 20E0              ldi R18,<_OutBuffer
 04AA 30E0              ldi R19,>_OutBuffer
 04AC 00E0              ldi R16,<_InBuffer
 04AE 10E0              ldi R17,>_InBuffer
 04B0 DFDD              xcall _Move
 04B2                   .dbline 205
 04B2           ;                         length1=8;
 04B2 88E0              ldi R24,8
 04B4 90E0              ldi R25,0
 04B6 9FAF              std y+63,R25
 04B8 8EAF              std y+62,R24
 04BA                   .dbline 206
 04BA           ;                         OutBuffer[7]=4;
 04BA 84E0              ldi R24,4
 04BC 80930F00          sts _OutBuffer+7,R24
 04C0                   .dbline 207
 04C0           ;                         for(i=0;i<j;i++)
 04C0 6627              clr R22
 04C2 67C0              xjmp L80
 04C4           L77:
 04C4                   .dbline 208
 04C4           ;                         {
 04C4                   .dbline 209
 04C4           ;                         if(!((temp_buffer1[i]==LCP_OPT_MRU)
 04C4 CE01              movw R24,R28
 04C6 8A96              adiw R24,42
 04C8 E62F              mov R30,R22
 04CA FF27              clr R31
 04CC E80F              add R30,R24
 04CE F91F              adc R31,R25
 04D0 2080              ldd R2,z+0
 04D2 3324              clr R3
 04D4 822D              mov R24,R2
 04D6 8130              cpi R24,1
 04D8 09F4              brne X17
 04DA 5AC0              xjmp L81
 04DC           X17:
 04DC 8230              cpi R24,2
 04DE 09F4              brne X18
 04E0 57C0              xjmp L81
 04E2           X18:
 04E2 8530              cpi R24,5
 04E4 09F4              brne X19
 04E6 54C0              xjmp L81
 04E8           X19:
 04E8                   .dbline 212
 04E8           ;                         ||(temp_buffer1[i]==LCP_OPT_ASYNC_MAP)
 04E8           ;                         ||(temp_buffer1[i]==LCP_OPT_MAGIC)))
 04E8           ;                          {
 04E8                   .dbline 213
 04E8           ;                               Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
 04E8 82E0              ldi R24,2
 04EA 869F              mul R24,R22
 04EC F001              movw R30,R0
 04EE CE01              movw R24,R28
 04F0 0296              adiw R24,2
 04F2 E80F              add R30,R24
 04F4 F91F              adc R31,R25
 04F6 2080              ldd R2,z+0
 04F8 3180              ldd R3,z+1
 04FA 80E0              ldi R24,<_InBuffer
 04FC 90E0              ldi R25,>_InBuffer
 04FE F101              movw R30,R2
 0500 3196              adiw R30,1
 0502 E80F              add R30,R24
 0504 F91F              adc R31,R25
 0506 4080              ldd R4,z+0
 0508 5524              clr R5
 050A 5982              std y+1,R5
 050C 4882              std y+0,R4
 050E 80E0              ldi R24,<_OutBuffer
 0510 90E0              ldi R25,>_OutBuffer
 0512 2EAD              ldd R18,y+62
 0514 3FAD              ldd R19,y+63
 0516 280F              add R18,R24
 0518 391F              adc R19,R25
 051A 80E0              ldi R24,<_InBuffer
 051C 90E0              ldi R25,>_InBuffer
 051E 8101              movw R16,R2
 0520 080F              add R16,R24
 0522 191F              adc R17,R25
 0524 A5DD              xcall _Move
 0526                   .dbline 214
 0526           ;                               OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
 0526 82E0              ldi R24,2
 0528 869F              mul R24,R22
 052A F001              movw R30,R0
 052C CE01              movw R24,R28
 052E 0296              adiw R24,2
 0530 E80F              add R30,R24
 0532 F91F              adc R31,R25
 0534 AF93              push R26
 0536 BF93              push R27
 0538 A081              ldd R26,z+0
 053A B181              ldd R27,z+1
 053C FD01              movw R30,R26
 053E BF91              pop R27
 0540 AF91              pop R26
 0542 3196              adiw R30,1
 0544 80E0              ldi R24,<_InBuffer
 0546 90E0              ldi R25,>_InBuffer
 0548 E80F              add R30,R24
 054A F91F              adc R31,R25
 054C 2080              ldd R2,z+0
 054E 30900F00          lds R3,_OutBuffer+7
 0552 320C              add R3,R2
 0554 30920F00          sts _OutBuffer+7,R3
 0558                   .dbline 215
 0558           ;                               length1+=InBuffer[temp_buffer2[i]+1];    
 0558 82E0              ldi R24,2
 055A 869F              mul R24,R22
 055C F001              movw R30,R0
 055E CE01              movw R24,R28
 0560 0296              adiw R24,2
 0562 E80F              add R30,R24
 0564 F91F              adc R31,R25
 0566 AF93              push R26
 0568 BF93              push R27
 056A A081              ldd R26,z+0
 056C B181              ldd R27,z+1
 056E FD01              movw R30,R26
 0570 BF91              pop R27
 0572 AF91              pop R26
 0574 3196              adiw R30,1
 0576 80E0              ldi R24,<_InBuffer
 0578 90E0              ldi R25,>_InBuffer
 057A E80F              add R30,R24
 057C F91F              adc R31,R25
 057E 2080              ldd R2,z+0
 0580 3324              clr R3
 0582 0EAC              ldd R0,y+62
 0584 1FAC              ldd R1,y+63
 0586 020C              add R0,R2
 0588 131C              adc R1,R3
 058A 1FAE              std y+63,R1
 058C 0EAE              std y+62,R0
 058E                   .dbline 216
 058E           ;                               rej = 1;
 058E 41E0              ldi R20,1
 0590                   .dbline 217
 0590           ;                          }//end of if((temp_buffer1[i]!=0x01)||(temp_buffer1[i]!=0x02)||(temp_buffer1[i]!=0x05))
 0590           L81:
 0590                   .dbline 218
 0590           L78:
 0590                   .dbline 207
 0590 6395              inc R22
 0592           L80:
 0592                   .dbline 207
 0592 6A15              cp R22,R10
 0594 08F4              brsh X20
 0596 96CF              xjmp L77
 0598           X20:
 0598                   .dbline 219
 0598           ;                         }//end of for(i=0;i<j;i++)
 0598           ;                          if(rej == 1)
 0598 4130              cpi R20,1
 059A 51F4              brne L84
 059C                   .dbline 220
 059C           ;                          {
 059C                   .dbline 221
 059C           ;                           OutBuffer [4] = LCP_CONFIG_REJECT;
 059C 84E0              ldi R24,4
 059E 80930C00          sts _OutBuffer+4,R24
 05A2                   .dbline 222
 05A2           ;                           ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);  
 05A2 20910F00          lds R18,_OutBuffer+7
 05A6 2A5F              subi R18,250    ; addi 6
 05A8 00E0              ldi R16,<_OutBuffer
 05AA 10E0              ldi R17,>_OutBuffer
 05AC D4DD              xcall _ProcPPPSend
 05AE                   .dbline 223
 05AE           ;                               return;
 05AE 5FC2              xjmp L62
 05B0           L84:
 05B0                   .dbline 226
 05B0           ;                          }//end of if(rej == 1)
 05B0           ;                          
 05B0           ;                          for(i=0;i<j;i++)
 05B0 6627              clr R22
 05B2 39C1              xjmp L91
 05B4           L88:
 05B4                   .dbline 227
 05B4           ;                          {
 05B4                   .dbline 228
 05B4           ;                                if(temp_buffer1[i]==LCP_OPT_MRU)
 05B4 CE01              movw R24,R28
 05B6 8A96              adiw R24,42
 05B8 E62F              mov R30,R22
 05BA FF27              clr R31
 05BC E80F              add R30,R24
 05BE F91F              adc R31,R25
 05C0 8081              ldd R24,z+0
 05C2 8130              cpi R24,1
 05C4 09F0              breq X21
 05C6 8CC0              xjmp L92
 05C8           X21:
 05C8                   .dbline 229
 05C8           ;                                {
 05C8                   .dbline 231
 05C8           ;                                 
 05C8           ;                                 if(((((WORD)InBuffer[temp_buffer2[i]+2])<<8)+InBuffer [temp_buffer2[i]+3])>MRU)
 05C8 82E0              ldi R24,2
 05CA 869F              mul R24,R22
 05CC F001              movw R30,R0
 05CE CE01              movw R24,R28
 05D0 0296              adiw R24,2
 05D2 E80F              add R30,R24
 05D4 F91F              adc R31,R25
 05D6 2080              ldd R2,z+0
 05D8 3180              ldd R3,z+1
 05DA 80E0              ldi R24,<_InBuffer
 05DC 90E0              ldi R25,>_InBuffer
 05DE F101              movw R30,R2
 05E0 3396              adiw R30,3
 05E2 E80F              add R30,R24
 05E4 F91F              adc R31,R25
 05E6 4080              ldd R4,z+0
 05E8 F101              movw R30,R2
 05EA 3296              adiw R30,2
 05EC E80F              add R30,R24
 05EE F91F              adc R31,R25
 05F0 2080              ldd R2,z+0
 05F2 322C              mov R3,R2
 05F4 242C              mov R2,R4
 05F6 40900C00          lds R4,_MRU
 05FA 50900D00          lds R5,_MRU+1
 05FE 4214              cp R4,R2
 0600 5304              cpc R5,R3
 0602 08F0              brlo X22
 0604 6DC0              xjmp L94
 0606           X22:
 0606                   .dbline 232
 0606           ;                                 {
 0606                   .dbline 233
 0606           ;                                 Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
 0606 82E0              ldi R24,2
 0608 869F              mul R24,R22
 060A F001              movw R30,R0
 060C CE01              movw R24,R28
 060E 0296              adiw R24,2
 0610 E80F              add R30,R24
 0612 F91F              adc R31,R25
 0614 2080              ldd R2,z+0
 0616 3180              ldd R3,z+1
 0618 80E0              ldi R24,<_InBuffer
 061A 90E0              ldi R25,>_InBuffer
 061C F101              movw R30,R2
 061E 3196              adiw R30,1
 0620 E80F              add R30,R24
 0622 F91F              adc R31,R25
 0624 4080              ldd R4,z+0
 0626 5524              clr R5
 0628 5982              std y+1,R5
 062A 4882              std y+0,R4
 062C 80E0              ldi R24,<_OutBuffer
 062E 90E0              ldi R25,>_OutBuffer
 0630 2EAD              ldd R18,y+62
 0632 3FAD              ldd R19,y+63
 0634 280F              add R18,R24
 0636 391F              adc R19,R25
 0638 80E0              ldi R24,<_InBuffer
 063A 90E0              ldi R25,>_InBuffer
 063C 8101              movw R16,R2
 063E 080F              add R16,R24
 0640 191F              adc R17,R25
 0642 16DD              xcall _Move
 0644                   .dbline 234
 0644           ;                                 OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
 0644 82E0              ldi R24,2
 0646 869F              mul R24,R22
 0648 F001              movw R30,R0
 064A CE01              movw R24,R28
 064C 0296              adiw R24,2
 064E E80F              add R30,R24
 0650 F91F              adc R31,R25
 0652 AF93              push R26
 0654 BF93              push R27
 0656 A081              ldd R26,z+0
 0658 B181              ldd R27,z+1
 065A FD01              movw R30,R26
 065C BF91              pop R27
 065E AF91              pop R26
 0660 3196              adiw R30,1
 0662 80E0              ldi R24,<_InBuffer
 0664 90E0              ldi R25,>_InBuffer
 0666 E80F              add R30,R24
 0668 F91F              adc R31,R25
 066A 2080              ldd R2,z+0
 066C 30900F00          lds R3,_OutBuffer+7
 0670 320C              add R3,R2
 0672 30920F00          sts _OutBuffer+7,R3
 0676                   .dbline 235
 0676           ;                                 OutBuffer[length1+2]=MRU>>8;
 0676 80E0              ldi R24,<_OutBuffer
 0678 90E0              ldi R25,>_OutBuffer
 067A EEAD              ldd R30,y+62
 067C FFAD              ldd R31,y+63
 067E 3296              adiw R30,2
 0680 E80F              add R30,R24
 0682 F91F              adc R31,R25
 0684 20900C00          lds R2,_MRU
 0688 30900D00          lds R3,_MRU+1
 068C 232C              mov R2,R3
 068E 3324              clr R3
 0690 2082              std z+0,R2
 0692                   .dbline 236
 0692           ;                                 OutBuffer[length1+3]=MRU;
 0692 EEAD              ldd R30,y+62
 0694 FFAD           

⌨️ 快捷键说明

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