📄 ppp.lst
字号:
08CB ADFF LDD R31,Y+63
08CC 0FE8 ADD R30,R24
08CD 1FF9 ADC R31,R25
08CE 8020 LDD R2,Z+0
08CF 01CE MOVW R24,R28
08D0 968A ADIW R24,0x2A
08D1 2DEA MOV R30,R10
08D2 27FF CLR R31
08D3 0FE8 ADD R30,R24
08D4 1FF9 ADC R31,R25
08D5 8220 STD Z+0,R2
(0289) temp_buffer2[j]=length1;
08D6 E082 LDI R24,2
08D7 9D8A MUL R24,R10
08D8 01F0 MOVW R30,R0
08D9 01CE MOVW R24,R28
08DA 9602 ADIW R24,2
08DB 0FE8 ADD R30,R24
08DC 1FF9 ADC R31,R25
08DD AC0E LDD R0,Y+62
08DE AC1F LDD R1,Y+63
08DF 8211 STD Z+1,R1
08E0 8200 STD Z+0,R0
(0290) length0-=InBuffer[length1+1];
08E1 EA87 LDI R24,0xA7
08E2 E09A LDI R25,0xA
08E3 01F0 MOVW R30,R0
08E4 9631 ADIW R30,1
08E5 0FE8 ADD R30,R24
08E6 1FF9 ADC R31,R25
08E7 8020 LDD R2,Z+0
08E8 2433 CLR R3
08E9 01FE MOVW R30,R28
08EA 5CE0 SUBI R30,0xC0
08EB 4FFF SBCI R31,0xFF
08EC 8000 LDD R0,Z+0
08ED 8011 LDD R1,Z+1
08EE 1802 SUB R0,R2
08EF 0813 SBC R1,R3
08F0 01FE MOVW R30,R28
08F1 5CE0 SUBI R30,0xC0
08F2 4FFF SBCI R31,0xFF
08F3 8211 STD Z+1,R1
08F4 8200 STD Z+0,R0
(0291) length1+=InBuffer[length1+1];
08F5 ADEE LDD R30,Y+62
08F6 ADFF LDD R31,Y+63
08F7 9631 ADIW R30,1
08F8 0FE8 ADD R30,R24
08F9 1FF9 ADC R31,R25
08FA 8020 LDD R2,Z+0
08FB 2433 CLR R3
08FC AC0E LDD R0,Y+62
08FD AC1F LDD R1,Y+63
08FE 0C02 ADD R0,R2
08FF 1C13 ADC R1,R3
0900 AE1F STD Y+63,R1
0901 AE0E STD Y+62,R0
(0292) j++;
0902 94A3 INC R10
0903 01FE MOVW R30,R28
0904 5CE0 SUBI R30,0xC0
0905 4FFF SBCI R31,0xFF
0906 8000 LDD R0,Z+0
0907 8011 LDD R1,Z+1
0908 2000 TST R0
0909 F009 BEQ 0x090B
090A CFBD RJMP 0x08C8
090B 2011 TST R1
090C F009 BEQ 0x090E
090D CFBA RJMP 0x08C8
(0293) }//end of while(length0)
(0294) if((temp_buffer1[i]==LCP_OPT_MRU))
090E 01CE MOVW R24,R28
090F 968A ADIW R24,0x2A
0910 2FE6 MOV R30,R22
0911 27FF CLR R31
0912 0FE8 ADD R30,R24
0913 1FF9 ADC R31,R25
0914 8180 LDD R24,Z+0
0915 3081 CPI R24,1
0916 F4D9 BNE 0x0932
(0295) {
(0296) MRU=((((WORD)InBuffer[temp_buffer2[i]+2])<<8)+InBuffer [temp_buffer2[i]+3]);
0917 E082 LDI R24,2
0918 9F86 MUL R24,R22
0919 01F0 MOVW R30,R0
091A 01CE MOVW R24,R28
091B 9602 ADIW R24,2
091C 0FE8 ADD R30,R24
091D 1FF9 ADC R31,R25
091E 8020 LDD R2,Z+0
091F 8031 LDD R3,Z+1
0920 EA87 LDI R24,0xA7
0921 E09A LDI R25,0xA
0922 01F1 MOVW R30,R2
0923 9633 ADIW R30,3
0924 0FE8 ADD R30,R24
0925 1FF9 ADC R31,R25
0926 8040 LDD R4,Z+0
0927 01F1 MOVW R30,R2
0928 9632 ADIW R30,2
0929 0FE8 ADD R30,R24
092A 1FF9 ADC R31,R25
092B 8020 LDD R2,Z+0
092C 2C32 MOV R3,R2
092D 2C24 MOV R2,R4
092E 92300130 STS 0x130,R3
0930 9220012F STS 0x12F,R2
(0297) }
(0298) IPAssignPacket();
0932 940E0B66 CALL _IPAssignPacket
(0299)
(0300) break;
0934 C02A RJMP 0x095F
(0301)
(0302) //++++++++++++++++++++++++++++++++++++++++++++++++++++
(0303) case LCP_CONFIG_NAK:
(0304) local_magic_num[0]=InBuffer[10];
0935 90200AB1 LDS R2,0xAB1
0937 92200123 STS 0x123,R2
(0305) local_magic_num[1]=InBuffer[11];
0939 90200AB2 LDS R2,0xAB2
093B 92200124 STS 0x124,R2
(0306) local_magic_num[2]=InBuffer[12];
093D 90200AB3 LDS R2,0xAB3
093F 92200125 STS 0x125,R2
(0307) local_magic_num[3]=InBuffer[13];
0941 90200AB4 LDS R2,0xAB4
0943 92200126 STS 0x126,R2
(0308) Move (InBuffer, OutBuffer, InBuffer[7]+4);
0945 91800AAE LDS R24,0xAAE
0947 2799 CLR R25
0948 9604 ADIW R24,4
0949 8399 STD Y+1,R25
094A 8388 STD Y+0,R24
094B EF26 LDI R18,0xF6
094C E035 LDI R19,5
094D EA07 LDI R16,0xA7
094E E01A LDI R17,0xA
094F DB10 RCALL _Move
(0309) OutBuffer[4]=LCP_CONFIG_REQUEST;
0950 E081 LDI R24,1
0951 938005FA STS 0x5FA,R24
(0310) ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
0953 912005FD LDS R18,0x5FD
0955 5F2A SUBI R18,0xFA
0956 EF06 LDI R16,0xF6
0957 E015 LDI R17,5
0958 DB7A RCALL _ProcPPPSend
(0311) break;
0959 C005 RJMP 0x095F
(0312)
(0313) //++++++++++++++++++++++++++++++++++++++++++++++++++++
(0314) case LCP_CONFIG_REJECT:
(0315) break;
(0316)
(0317) //++++++++++++++++++++++++++++++++++++++++++++++++++++
(0318) case LCP_TERMINATE_ACK: // Terminate ACK!
(0319) PPPStatus &= ~LinkOn;
095A 9180012B LDS R24,0x12B
095C 7D8F ANDI R24,0xDF
095D 9380012B STS 0x12B,R24
(0320) break;
(0321) }
(0322) return;
095F 96EF ADIW R28,0x3F
0960 9623 ADIW R28,3
0961 940E0BFA CALL pop_gset5
0963 9508 RET
_HandleIPCPOptions:
nak --> R20
rej --> R22
temp_buffer1 --> Y+42
temp_buffer2 --> Y+2
length0 --> Y+62
j --> R12
i --> R14
length1 --> R10
0964 940E0C20 CALL push_gset5
0966 97EF SBIW R28,0x3F
0967 9721 SBIW R28,1
(0323) }
(0324)
(0325) static void HandleIPCPOptions (void) {
(0326)
(0327) WORD length0=0;
0968 2400 CLR R0
0969 2411 CLR R1
096A AE1F STD Y+63,R1
096B AE0E STD Y+62,R0
(0328) WORD length1=8;
096C E088 LDI R24,0x8
096D E090 LDI R25,0
096E 015C MOVW R10,R24
(0329) BYTE rej=0;
096F 2766 CLR R22
(0330) BYTE nak=0;
0970 2744 CLR R20
(0331) BYTE i=0;
0971 24EE CLR R14
(0332) BYTE j=0;
0972 24CC CLR R12
(0333) BYTE temp_buffer1[20];
(0334) WORD temp_buffer2[20];
(0335)
(0336) switch (InBuffer [4] ) {
0973 91400AAB LDS R20,0xAAB
0975 2755 CLR R21
0976 3041 CPI R20,1
0977 E0E0 LDI R30,0
0978 075E CPC R21,R30
0979 F081 BEQ 0x098A
097A 3042 CPI R20,2
097B E0E0 LDI R30,0
097C 075E CPC R21,R30
097D F409 BNE 0x097F
097E C0F0 RJMP 0x0A6F
097F 3043 CPI R20,3
0980 E0E0 LDI R30,0
0981 075E CPC R21,R30
0982 F409 BNE 0x0984
0983 C100 RJMP 0x0A84
0984 3044 CPI R20,4
0985 E0E0 LDI R30,0
0986 075E CPC R21,R30
0987 F409 BNE 0x0989
0988 C113 RJMP 0x0A9C
0989 C112 RJMP 0x0A9C
(0337) case IPCP_CONFIG_REQUEST:
(0338) length0=InBuffer[7]-4;
098A 91800AAE LDS R24,0xAAE
098C 2799 CLR R25
098D 9704 SBIW R24,4
098E AF9F STD Y+63,R25
098F AF8E STD Y+62,R24
0990 C02D RJMP 0x09BE
(0339) while(length0)
(0340) {
(0341) temp_buffer1[j]=InBuffer[length1];
0991 EA87 LDI R24,0xA7
0992 E09A LDI R25,0xA
0993 01F5 MOVW R30,R10
0994 0FE8 ADD R30,R24
0995 1FF9 ADC R31,R25
0996 8020 LDD R2,Z+0
0997 01CE MOVW R24,R28
0998 968A ADIW R24,0x2A
0999 2DEC MOV R30,R12
099A 27FF CLR R31
099B 0FE8 ADD R30,R24
099C 1FF9 ADC R31,R25
099D 8220 STD Z+0,R2
(0342) temp_buffer2[j]=length1;
099E E082 LDI R24,2
099F 9D8C MUL R24,R12
09A0 01F0 MOVW R30,R0
09A1 01CE MOVW R24,R28
09A2 9602 ADIW R24,2
09A3 0FE8 ADD R30,R24
09A4 1FF9 ADC R31,R25
09A5 82B1 STD Z+1,R11
09A6 82A0 STD Z+0,R10
(0343) length0-=InBuffer[length1+1];
09A7 EA87 LDI R24,0xA7
09A8 E09A LDI R25,0xA
09A9 01F5 MOVW R30,R10
09AA 9631 ADIW R30,1
09AB 0FE8 ADD R30,R24
09AC 1FF9 ADC R31,R25
09AD 8020 LDD R2,Z+0
09AE 2433 CLR R3
09AF AC0E LDD R0,Y+62
09B0 AC1F LDD R1,Y+63
09B1 1802 SUB R0,R2
09B2 0813 SBC R1,R3
09B3 AE1F STD Y+63,R1
09B4 AE0E STD Y+62,R0
(0344) length1+=InBuffer[length1+1];
09B5 01F5 MOVW R30,R10
09B6 9631 ADIW R30,1
09B7 0FE8 ADD R30,R24
09B8 1FF9 ADC R31,R25
09B9 8020 LDD R2,Z+0
09BA 2433 CLR R3
09BB 0CA2 ADD R10,R2
09BC 1CB3 ADC R11,R3
(0345) j++;
09BD 94C3 INC R12
09BE AC0E LDD R0,Y+62
09BF AC1F LDD R1,Y+63
09C0 2000 TST R0
09C1 F009 BEQ 0x09C3
09C2 CFCE RJMP 0x0991
09C3 2011 TST R1
09C4 F009 BEQ 0x09C6
09C5 CFCB RJMP 0x0991
(0346) }//end of while(length0)
(0347) Move (InBuffer, OutBuffer, 8);
09C6 E088 LDI R24,0x8
09C7 E090 LDI R25,0
09C8 8399 STD Y+1,R25
09C9 8388 STD Y+0,R24
09CA EF26 LDI R18,0xF6
09CB E035 LDI R19,5
09CC EA07 LDI R16,0xA7
09CD E01A LDI R17,0xA
09CE DA91 RCALL _Move
(0348) length1=8;
09CF E088 LDI R24,0x8
09D0 E090 LDI R25,0
09D1 015C MOVW R10,R24
(0349) OutBuffer[7]=4;
09D2 E084 LDI R24,4
09D3 938005FD STS 0x5FD,R24
(0350) for(i=0;i<j;i++)
09D5 24EE CLR R14
09D6 C05A RJMP 0x0A31
(0351) {
(0352) if(temp_buffer1[i]!=0x03)
09D7 01CE MOVW R24,R28
09D8 968A ADIW R24,0x2A
09D9 2DEE MOV R30,R14
09DA 27FF CLR R31
09DB 0FE8 ADD R30,R24
09DC 1FF9 ADC R31,R25
09DD 8180 LDD R24,Z+0
09DE 3083 CPI R24,3
09DF F409 BNE 0x09E1
09E0 C04F RJMP 0x0A30
(0353) {
(0354) Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
09E1 E082 LDI R24,2
09E2 9D8E MUL R24,R14
09E3 01F0 MOVW R30,R0
09E4 01CE MOVW R24,R28
09E5 9602 ADIW R24,2
09E6 0FE8 ADD R30,R24
09E7 1FF9 ADC R31,R25
09E8 8020 LDD R2,Z+0
09E9 8031 LDD R3,Z+1
09EA EA87 LDI R24,0xA7
09EB E09A LDI R25,0xA
09EC 01F1 MOVW R30,R2
09ED 9631 ADIW R30,1
09EE 0FE8 ADD R30,R24
09EF 1FF9 ADC R31,R25
09F0 8040 LDD R4,Z+0
09F1 2455 CLR R5
09F2 8259 STD Y+1,R5
09F3 8248 STD Y+0,R4
09F4 EF86 LDI R24,0xF6
09F5 E095 LDI R25,5
09F6 0195 MOVW R18,R10
09F7 0F28 ADD R18,R24
09F8 1F39 ADC R19,R25
09F9 EA87 LDI R24,0xA7
09FA E09A LDI R25,0xA
09FB 0181 MOVW R16,R2
09FC 0F08 ADD R16,R24
09FD 1F19 ADC R17,R25
09FE DA61 RCALL _Move
(0355) OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
09FF E082 LDI R24,2
0A00 9D8E MUL R24,R14
0A01 01F0 MOVW R30,R0
0A02 01CE MOVW R24,R28
0A03 9602 ADIW R24,2
0A04 0FE8 ADD R30,R24
0A05 1FF9 ADC R31,R25
0A06 93AF PUSH R26
0A07 93BF PUSH R27
0A08 81A0 LDD R26,Z+0
0A09 81B1 LDD R27,Z+1
0A0A 01FD MOVW R30,R26
0A0B 91BF POP R27
0A0C 91AF POP R26
0A0D 9631 ADIW R30,1
0A0E EA87 LDI R24,0xA7
0A0F E09A LDI R25,0xA
0A10 0FE8 ADD R30,R24
0A11 1FF9 ADC R31,R25
0A12 8020 LDD R2,Z+0
0A13 903005FD LDS R3,0x5FD
0A15 0C32 ADD R3,R2
0A16 923005FD STS 0x5FD,R3
(0356) length1+=InBuffer[temp_buffer2[i]+1];
0A18 E082 LDI R24,2
0A19 9D8E MUL R24,R14
0A1A 01F0 MOVW R30,R0
0A1B 01CE MOVW R24,R28
0A1C 9602 ADIW R24,2
0A1D 0FE8 ADD R30,R24
0A1E 1FF9 ADC R31,R25
0A1F 93AF PUSH R26
0A20 93BF PUSH R27
0A21 81A0 LDD R26,Z+0
0A22 81B1 LDD R27,Z+1
0A23 01FD MOVW R30,R26
0A24 91BF POP R27
0A25 91AF POP R26
0A26 9631 ADIW R30,1
0A27 EA87 LDI R24,0xA7
0A28 E09A LDI R25,0xA
0A29 0FE8 ADD R30,R24
0A2A 1FF9 ADC R31,R25
0A2B 8020 LDD R2,Z+0
0A2C 2433 CLR R3
0A2D 0CA2 ADD R10,R2
0A2E 1CB3 ADC R11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -