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

📄 ppp.lst

📁 在串口上PPP拨号上网的源程序(实现PPP协议栈)
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0752 93BF      PUSH	R27
    0753 81A0      LDD	R26,Z+0
    0754 81B1      LDD	R27,Z+1
    0755 01FD      MOVW	R30,R26
    0756 91BF      POP	R27
    0757 91AF      POP	R26
    0758 9631      ADIW	R30,1
    0759 EA87      LDI	R24,0xA7
    075A E09A      LDI	R25,0xA
    075B 0FE8      ADD	R30,R24
    075C 1FF9      ADC	R31,R25
    075D 8020      LDD	R2,Z+0
    075E 903005FD  LDS	R3,0x5FD
    0760 0C32      ADD	R3,R2
    0761 923005FD  STS	0x5FD,R3
(0235) 				  OutBuffer[length1+2]=MRU>>8;
    0763 EF86      LDI	R24,0xF6
    0764 E095      LDI	R25,5
    0765 ADEE      LDD	R30,Y+62
    0766 ADFF      LDD	R31,Y+63
    0767 9632      ADIW	R30,2
    0768 0FE8      ADD	R30,R24
    0769 1FF9      ADC	R31,R25
    076A 9020012F  LDS	R2,0x12F
    076C 90300130  LDS	R3,0x130
    076E 2C23      MOV	R2,R3
    076F 2433      CLR	R3
    0770 8220      STD	Z+0,R2
(0236) 				  OutBuffer[length1+3]=MRU;
    0771 ADEE      LDD	R30,Y+62
    0772 ADFF      LDD	R31,Y+63
    0773 9633      ADIW	R30,3
    0774 0FE8      ADD	R30,R24
    0775 1FF9      ADC	R31,R25
    0776 9020012F  LDS	R2,0x12F
    0778 90300130  LDS	R3,0x130
    077A 8220      STD	Z+0,R2
(0237) 				  length1+=InBuffer[temp_buffer2[i]+1];   
    077B E082      LDI	R24,2
    077C 9F86      MUL	R24,R22
    077D 01F0      MOVW	R30,R0
    077E 01CE      MOVW	R24,R28
    077F 9602      ADIW	R24,2
    0780 0FE8      ADD	R30,R24
    0781 1FF9      ADC	R31,R25
    0782 93AF      PUSH	R26
    0783 93BF      PUSH	R27
    0784 81A0      LDD	R26,Z+0
    0785 81B1      LDD	R27,Z+1
    0786 01FD      MOVW	R30,R26
    0787 91BF      POP	R27
    0788 91AF      POP	R26
    0789 9631      ADIW	R30,1
    078A EA87      LDI	R24,0xA7
    078B E09A      LDI	R25,0xA
    078C 0FE8      ADD	R30,R24
    078D 1FF9      ADC	R31,R25
    078E 8020      LDD	R2,Z+0
    078F 2433      CLR	R3
    0790 AC0E      LDD	R0,Y+62
    0791 AC1F      LDD	R1,Y+63
    0792 0C02      ADD	R0,R2
    0793 1C13      ADC	R1,R3
    0794 AE1F      STD	Y+63,R1
    0795 AE0E      STD	Y+62,R0
(0238) 				  nak=1;
    0796 24EE      CLR	R14
    0797 94E3      INC	R14
(0239) 				  }
(0240) 				  
(0241) 				 }
(0242) 				 if(temp_buffer1[i]==LCP_OPT_ASYNC_MAP)
    0798 01CE      MOVW	R24,R28
    0799 968A      ADIW	R24,0x2A
    079A 2FE6      MOV	R30,R22
    079B 27FF      CLR	R31
    079C 0FE8      ADD	R30,R24
    079D 1FF9      ADC	R31,R25
    079E 8180      LDD	R24,Z+0
    079F 3082      CPI	R24,2
    07A0 F009      BEQ	0x07A2
    07A1 C098      RJMP	0x083A
(0243) 				 {
(0244) 				  if((InBuffer[temp_buffer2[i]+2]!=0x00)||
    07A2 E082      LDI	R24,2
    07A3 9F86      MUL	R24,R22
    07A4 01F0      MOVW	R30,R0
    07A5 01CE      MOVW	R24,R28
    07A6 9602      ADIW	R24,2
    07A7 0FE8      ADD	R30,R24
    07A8 1FF9      ADC	R31,R25
    07A9 8020      LDD	R2,Z+0
    07AA 8031      LDD	R3,Z+1
    07AB EA87      LDI	R24,0xA7
    07AC E09A      LDI	R25,0xA
    07AD 01F1      MOVW	R30,R2
    07AE 9632      ADIW	R30,2
    07AF 0FE8      ADD	R30,R24
    07B0 1FF9      ADC	R31,R25
    07B1 8040      LDD	R4,Z+0
    07B2 2044      TST	R4
    07B3 F4B1      BNE	0x07CA
    07B4 01F1      MOVW	R30,R2
    07B5 9633      ADIW	R30,3
    07B6 0FE8      ADD	R30,R24
    07B7 1FF9      ADC	R31,R25
    07B8 8040      LDD	R4,Z+0
    07B9 2044      TST	R4
    07BA F479      BNE	0x07CA
    07BB 01F1      MOVW	R30,R2
    07BC 9634      ADIW	R30,4
    07BD 0FE8      ADD	R30,R24
    07BE 1FF9      ADC	R31,R25
    07BF 8040      LDD	R4,Z+0
    07C0 2044      TST	R4
    07C1 F441      BNE	0x07CA
    07C2 01F1      MOVW	R30,R2
    07C3 9635      ADIW	R30,5
    07C4 0FE8      ADD	R30,R24
    07C5 1FF9      ADC	R31,R25
    07C6 8020      LDD	R2,Z+0
    07C7 2022      TST	R2
    07C8 F409      BNE	0x07CA
    07C9 C070      RJMP	0x083A
(0245) 				  (InBuffer[temp_buffer2[i]+3]!=0x00)||
(0246) 				  (InBuffer[temp_buffer2[i]+4]!=0x00)||
(0247) 				  (InBuffer[temp_buffer2[i]+5]!=0x00)
(0248) 				  )
(0249) 				  {
(0250) 				  Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
    07CA E082      LDI	R24,2
    07CB 9F86      MUL	R24,R22
    07CC 01F0      MOVW	R30,R0
    07CD 01CE      MOVW	R24,R28
    07CE 9602      ADIW	R24,2
    07CF 0FE8      ADD	R30,R24
    07D0 1FF9      ADC	R31,R25
    07D1 8020      LDD	R2,Z+0
    07D2 8031      LDD	R3,Z+1
    07D3 EA87      LDI	R24,0xA7
    07D4 E09A      LDI	R25,0xA
    07D5 01F1      MOVW	R30,R2
    07D6 9631      ADIW	R30,1
    07D7 0FE8      ADD	R30,R24
    07D8 1FF9      ADC	R31,R25
    07D9 8040      LDD	R4,Z+0
    07DA 2455      CLR	R5
    07DB 8259      STD	Y+1,R5
    07DC 8248      STD	Y+0,R4
    07DD EF86      LDI	R24,0xF6
    07DE E095      LDI	R25,5
    07DF AD2E      LDD	R18,Y+62
    07E0 AD3F      LDD	R19,Y+63
    07E1 0F28      ADD	R18,R24
    07E2 1F39      ADC	R19,R25
    07E3 EA87      LDI	R24,0xA7
    07E4 E09A      LDI	R25,0xA
    07E5 0181      MOVW	R16,R2
    07E6 0F08      ADD	R16,R24
    07E7 1F19      ADC	R17,R25
    07E8 DC77      RCALL	_Move
(0251) 			          OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
    07E9 E082      LDI	R24,2
    07EA 9F86      MUL	R24,R22
    07EB 01F0      MOVW	R30,R0
    07EC 01CE      MOVW	R24,R28
    07ED 9602      ADIW	R24,2
    07EE 0FE8      ADD	R30,R24
    07EF 1FF9      ADC	R31,R25
    07F0 93AF      PUSH	R26
    07F1 93BF      PUSH	R27
    07F2 81A0      LDD	R26,Z+0
    07F3 81B1      LDD	R27,Z+1
    07F4 01FD      MOVW	R30,R26
    07F5 91BF      POP	R27
    07F6 91AF      POP	R26
    07F7 9631      ADIW	R30,1
    07F8 EA87      LDI	R24,0xA7
    07F9 E09A      LDI	R25,0xA
    07FA 0FE8      ADD	R30,R24
    07FB 1FF9      ADC	R31,R25
    07FC 8020      LDD	R2,Z+0
    07FD 903005FD  LDS	R3,0x5FD
    07FF 0C32      ADD	R3,R2
    0800 923005FD  STS	0x5FD,R3
(0252) 				  OutBuffer[length1+2]=0x00;
    0802 EF86      LDI	R24,0xF6
    0803 E095      LDI	R25,5
    0804 ADEE      LDD	R30,Y+62
    0805 ADFF      LDD	R31,Y+63
    0806 9632      ADIW	R30,2
    0807 0FE8      ADD	R30,R24
    0808 1FF9      ADC	R31,R25
    0809 2422      CLR	R2
    080A 8220      STD	Z+0,R2
(0253) 				  OutBuffer[length1+3]=0x00;
    080B ADEE      LDD	R30,Y+62
    080C ADFF      LDD	R31,Y+63
    080D 9633      ADIW	R30,3
    080E 0FE8      ADD	R30,R24
    080F 1FF9      ADC	R31,R25
    0810 8220      STD	Z+0,R2
(0254) 				  OutBuffer[length1+4]=0x00;
    0811 ADEE      LDD	R30,Y+62
    0812 ADFF      LDD	R31,Y+63
    0813 9634      ADIW	R30,4
    0814 0FE8      ADD	R30,R24
    0815 1FF9      ADC	R31,R25
    0816 8220      STD	Z+0,R2
(0255) 				  OutBuffer[length1+5]=0x00;
    0817 ADEE      LDD	R30,Y+62
    0818 ADFF      LDD	R31,Y+63
    0819 9635      ADIW	R30,5
    081A 0FE8      ADD	R30,R24
    081B 1FF9      ADC	R31,R25
    081C 8220      STD	Z+0,R2
(0256) 				  length1+=InBuffer[temp_buffer2[i]+1];   
    081D E082      LDI	R24,2
    081E 9F86      MUL	R24,R22
    081F 01F0      MOVW	R30,R0
    0820 01CE      MOVW	R24,R28
    0821 9602      ADIW	R24,2
    0822 0FE8      ADD	R30,R24
    0823 1FF9      ADC	R31,R25
    0824 93AF      PUSH	R26
    0825 93BF      PUSH	R27
    0826 81A0      LDD	R26,Z+0
    0827 81B1      LDD	R27,Z+1
    0828 01FD      MOVW	R30,R26
    0829 91BF      POP	R27
    082A 91AF      POP	R26
    082B 9631      ADIW	R30,1
    082C EA87      LDI	R24,0xA7
    082D E09A      LDI	R25,0xA
    082E 0FE8      ADD	R30,R24
    082F 1FF9      ADC	R31,R25
    0830 8020      LDD	R2,Z+0
    0831 2433      CLR	R3
    0832 AC0E      LDD	R0,Y+62
    0833 AC1F      LDD	R1,Y+63
    0834 0C02      ADD	R0,R2
    0835 1C13      ADC	R1,R3
    0836 AE1F      STD	Y+63,R1
    0837 AE0E      STD	Y+62,R0
(0257) 				  nak=1;
    0838 24EE      CLR	R14
    0839 94E3      INC	R14
    083A 9563      INC	R22
    083B 156A      CP	R22,R10
    083C F408      BCC	0x083E
    083D CEC4      RJMP	0x0702
(0258) 				 }//end of if((InBuffer[temp_buffer2[i]+2]!==0x00)||...
(0259) 				 }//end of if(temp_buffer1[i]==02)
(0260) 				 }//end of for(i=0;i<j;i++)
(0261) 				 if(nak==1)
    083E 2D8E      MOV	R24,R14
    083F 3081      CPI	R24,1
    0840 F451      BNE	0x084B
(0262) 			      {
(0263) 			       OutBuffer [4] = LCP_CONFIG_NAK;
    0841 E083      LDI	R24,3
    0842 938005FA  STS	0x5FA,R24
(0264) 			       ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);	
    0844 912005FD  LDS	R18,0x5FD
    0846 5F2A      SUBI	R18,0xFA
    0847 EF06      LDI	R16,0xF6
    0848 E015      LDI	R17,5
    0849 DC89      RCALL	_ProcPPPSend
(0265) 				   return;
    084A C114      RJMP	0x095F
(0266) 			      } 
(0267) 			      
(0268) 			 for(i=0;i<j;i++)
    084B 2766      CLR	R22
    084C C063      RJMP	0x08B0
(0269) 			  {
(0270) 			   if((temp_buffer1[i]==LCP_OPT_MAGIC))
    084D 01CE      MOVW	R24,R28
    084E 968A      ADIW	R24,0x2A
    084F 2FE6      MOV	R30,R22
    0850 27FF      CLR	R31
    0851 0FE8      ADD	R30,R24
    0852 1FF9      ADC	R31,R25
    0853 8180      LDD	R24,Z+0
    0854 3085      CPI	R24,5
    0855 F009      BEQ	0x0857
    0856 C058      RJMP	0x08AF
(0271) 			    {
(0272) 			     remote_magic_num[0]=InBuffer[temp_buffer2[i]+2];
    0857 E082      LDI	R24,2
    0858 9F86      MUL	R24,R22
    0859 01F0      MOVW	R30,R0
    085A 01CE      MOVW	R24,R28
    085B 9602      ADIW	R24,2
    085C 0FE8      ADD	R30,R24
    085D 1FF9      ADC	R31,R25
    085E 93AF      PUSH	R26
    085F 93BF      PUSH	R27
    0860 81A0      LDD	R26,Z+0
    0861 81B1      LDD	R27,Z+1
    0862 01FD      MOVW	R30,R26
    0863 91BF      POP	R27
    0864 91AF      POP	R26
    0865 9632      ADIW	R30,2
    0866 EA87      LDI	R24,0xA7
    0867 E09A      LDI	R25,0xA
    0868 0FE8      ADD	R30,R24
    0869 1FF9      ADC	R31,R25
    086A 8020      LDD	R2,Z+0
    086B 92200127  STS	0x127,R2
(0273) 			     remote_magic_num[1]=InBuffer[temp_buffer2[i]+3];
    086D E082      LDI	R24,2
    086E 9F86      MUL	R24,R22
    086F 01F0      MOVW	R30,R0
    0870 01CE      MOVW	R24,R28
    0871 9602      ADIW	R24,2
    0872 0FE8      ADD	R30,R24
    0873 1FF9      ADC	R31,R25
    0874 93AF      PUSH	R26
    0875 93BF      PUSH	R27
    0876 81A0      LDD	R26,Z+0
    0877 81B1      LDD	R27,Z+1
    0878 01FD      MOVW	R30,R26
    0879 91BF      POP	R27
    087A 91AF      POP	R26
    087B 9633      ADIW	R30,3
    087C EA87      LDI	R24,0xA7
    087D E09A      LDI	R25,0xA
    087E 0FE8      ADD	R30,R24
    087F 1FF9      ADC	R31,R25
    0880 8020      LDD	R2,Z+0
    0881 92200128  STS	0x128,R2
(0274) 			     remote_magic_num[2]=InBuffer[temp_buffer2[i]+4];
    0883 E082      LDI	R24,2
    0884 9F86      MUL	R24,R22
    0885 01F0      MOVW	R30,R0
    0886 01CE      MOVW	R24,R28
    0887 9602      ADIW	R24,2
    0888 0FE8      ADD	R30,R24
    0889 1FF9      ADC	R31,R25
    088A 93AF      PUSH	R26
    088B 93BF      PUSH	R27
    088C 81A0      LDD	R26,Z+0
    088D 81B1      LDD	R27,Z+1
    088E 01FD      MOVW	R30,R26
    088F 91BF      POP	R27
    0890 91AF      POP	R26
    0891 9634      ADIW	R30,4
    0892 EA87      LDI	R24,0xA7
    0893 E09A      LDI	R25,0xA
    0894 0FE8      ADD	R30,R24
    0895 1FF9      ADC	R31,R25
    0896 8020      LDD	R2,Z+0
    0897 92200129  STS	0x129,R2
(0275) 	                     remote_magic_num[3]=InBuffer[temp_buffer2[i]+5];
    0899 E082      LDI	R24,2
    089A 9F86      MUL	R24,R22
    089B 01F0      MOVW	R30,R0
    089C 01CE      MOVW	R24,R28
    089D 9602      ADIW	R24,2
    089E 0FE8      ADD	R30,R24
    089F 1FF9      ADC	R31,R25
    08A0 93AF      PUSH	R26
    08A1 93BF      PUSH	R27
    08A2 81A0      LDD	R26,Z+0
    08A3 81B1      LDD	R27,Z+1
    08A4 01FD      MOVW	R30,R26
    08A5 91BF      POP	R27
    08A6 91AF      POP	R26
    08A7 9635      ADIW	R30,5
    08A8 EA87      LDI	R24,0xA7
    08A9 E09A      LDI	R25,0xA
    08AA 0FE8      ADD	R30,R24
    08AB 1FF9      ADC	R31,R25
    08AC 8020      LDD	R2,Z+0
    08AD 9220012A  STS	0x12A,R2
    08AF 9563      INC	R22
    08B0 156A      CP	R22,R10
    08B1 F408      BCC	0x08B3
    08B2 CF9A      RJMP	0x084D
(0276) 			    }
(0277) 			  }
(0278) 				 
(0279) 			 Move (InBuffer, OutBuffer, InBuffer[7]+4);
    08B3 91800AAE  LDS	R24,0xAAE
    08B5 2799      CLR	R25
    08B6 9604      ADIW	R24,4
    08B7 8399      STD	Y+1,R25
    08B8 8388      STD	Y+0,R24
    08B9 EF26      LDI	R18,0xF6
    08BA E035      LDI	R19,5
    08BB EA07      LDI	R16,0xA7
    08BC E01A      LDI	R17,0xA
    08BD DBA2      RCALL	_Move
(0280) 			 OutBuffer [4] =  LCP_CONFIG_ACK;
    08BE E082      LDI	R24,2
    08BF 938005FA  STS	0x5FA,R24
(0281) 			 ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);		
    08C1 912005FD  LDS	R18,0x5FD
    08C3 5F2A      SUBI	R18,0xFA
    08C4 EF06      LDI	R16,0xF6
    08C5 E015      LDI	R17,5
    08C6 DC0C      RCALL	_ProcPPPSend
(0282)         break;
    08C7 C097      RJMP	0x095F
(0283) 		//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(0284) 		case LCP_CONFIG_ACK:
(0285) 
(0286) 		     while(length0)
(0287) 			  {
(0288) 			    temp_buffer1[j]=InBuffer[length1];
    08C8 EA87      LDI	R24,0xA7
    08C9 E09A      LDI	R25,0xA
    08CA ADEE      LDD	R30,Y+62

⌨️ 快捷键说明

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