📄 ppppacket.lis
字号:
0026 80930300 sts _OutBuffer+3,R24
002A .dbline 19
002A ; OutBuffer [4] = LCP_CONFIG_REQUEST; //代码域
002A 81E0 ldi R24,1
002C 80930400 sts _OutBuffer+4,R24
0030 .dbline 20
0030 ; OutBuffer [5] = 0x01; //标识域
0030 80930500 sts _OutBuffer+5,R24
0034 .dbline 21
0034 ; OutBuffer [6] = 0x00; //长度
0034 2224 clr R2
0036 20920600 sts _OutBuffer+6,R2
003A .dbline 22
003A ; OutBuffer [7] = 0x14;
003A 84E1 ldi R24,20
003C 80930700 sts _OutBuffer+7,R24
0040 .dbline 23
0040 ; OutBuffer [8] = LCP_OPT_MRU; //类型
0040 81E0 ldi R24,1
0042 80930800 sts _OutBuffer+8,R24
0046 .dbline 24
0046 ; OutBuffer [9] = 0x04; //长度
0046 84E0 ldi R24,4
0048 80930900 sts _OutBuffer+9,R24
004C .dbline 25
004C ; OutBuffer [10] = MRUp[0]; //数据
004C 2880 ldd R2,y+0
004E 20920A00 sts _OutBuffer+10,R2
0052 .dbline 26
0052 ; OutBuffer [11] = MRUp[1];
0052 242E mov R2,R20
0054 20920B00 sts _OutBuffer+11,R2
0058 .dbline 27
0058 ; OutBuffer [12] = LCP_OPT_ASYNC_MAP; //类型
0058 82E0 ldi R24,2
005A 80930C00 sts _OutBuffer+12,R24
005E .dbline 28
005E ; OutBuffer [13] = 0x06; //长度
005E 86E0 ldi R24,6
0060 80930D00 sts _OutBuffer+13,R24
0064 .dbline 29
0064 ; OutBuffer [14] = 0x00; //数据
0064 2224 clr R2
0066 20920E00 sts _OutBuffer+14,R2
006A .dbline 30
006A ; OutBuffer [15] = 0x00;
006A 20920F00 sts _OutBuffer+15,R2
006E .dbline 31
006E ; OutBuffer [16] = 0x00;
006E 20921000 sts _OutBuffer+16,R2
0072 .dbline 32
0072 ; OutBuffer [17] = 0x00;
0072 20921100 sts _OutBuffer+17,R2
0076 .dbline 33
0076 ; OutBuffer [18] = LCP_OPT_MAGIC; //类型
0076 85E0 ldi R24,5
0078 80931200 sts _OutBuffer+18,R24
007C .dbline 34
007C ; OutBuffer [19] = 0x06; //长度
007C 86E0 ldi R24,6
007E 80931300 sts _OutBuffer+19,R24
0082 .dbline 35
0082 ; OutBuffer [20] = local_magic_num[0]; //数据
0082 20900000 lds R2,_local_magic_num
0086 20921400 sts _OutBuffer+20,R2
008A .dbline 36
008A ; OutBuffer [21] = local_magic_num[1];
008A 20900100 lds R2,_local_magic_num+1
008E 20921500 sts _OutBuffer+21,R2
0092 .dbline 37
0092 ; OutBuffer [22] = local_magic_num[2];
0092 20900200 lds R2,_local_magic_num+2
0096 20921600 sts _OutBuffer+22,R2
009A .dbline 38
009A ; OutBuffer [23] = local_magic_num[3];
009A 20900300 lds R2,_local_magic_num+3
009E 20921700 sts _OutBuffer+23,R2
00A2 .dbline 39
00A2 ; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
00A2 20910700 lds R18,_OutBuffer+7
00A6 2A5F subi R18,250 ; addi 6
00A8 00E0 ldi R16,<_OutBuffer
00AA 10E0 ldi R17,>_OutBuffer
00AC 0E940000 xcall _ProcPPPSend
00B0 .dbline -2
00B0 .dbline 40
00B0 ; }
00B0 L1:
00B0 2296 adiw R28,2
00B2 0E940000 xcall pop_gset1
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbsym l MRUp 0 A[2:2]c
00B8 .dbsym r MRU 20 i
00B8 .dbend
00B8 .dbfunc e MagicNumPacket _MagicNumPacket fV
.even
00B8 _MagicNumPacket::
00B8 .dbline -1
00B8 .dbline 47
00B8 ; /////////////////////////////////////////////////////////////
00B8 ; /*
00B8 ; LCP的协商魔术字
00B8 ; */
00B8 ; /////////////////////////////////////////////////////////////
00B8 ; void MagicNumPacket (void)
00B8 ; {
00B8 .dbline 48
00B8 ; OutBuffer [0] = PPP_ADD; //地址域
00B8 8FEF ldi R24,255
00BA 80930000 sts _OutBuffer,R24
00BE .dbline 49
00BE ; OutBuffer [1] = PPP_COMTROL; //控制域
00BE 83E0 ldi R24,3
00C0 80930100 sts _OutBuffer+1,R24
00C4 .dbline 50
00C4 ; OutBuffer [2] = 0xC0; //协议域
00C4 80EC ldi R24,192
00C6 80930200 sts _OutBuffer+2,R24
00CA .dbline 51
00CA ; OutBuffer [3] = 0x21;
00CA 81E2 ldi R24,33
00CC 80930300 sts _OutBuffer+3,R24
00D0 .dbline 52
00D0 ; OutBuffer [4] = LCP_CONFIG_REQUEST; //代码域
00D0 81E0 ldi R24,1
00D2 80930400 sts _OutBuffer+4,R24
00D6 .dbline 53
00D6 ; OutBuffer [5] = 0x01; //标识域
00D6 80930500 sts _OutBuffer+5,R24
00DA .dbline 54
00DA ; OutBuffer [6] = 0x00; //长度
00DA 2224 clr R2
00DC 20920600 sts _OutBuffer+6,R2
00E0 .dbline 55
00E0 ; OutBuffer [7] = 0x0A;
00E0 8AE0 ldi R24,10
00E2 80930700 sts _OutBuffer+7,R24
00E6 .dbline 56
00E6 ; OutBuffer [8] = LCP_OPT_MAGIC; //类型
00E6 85E0 ldi R24,5
00E8 80930800 sts _OutBuffer+8,R24
00EC .dbline 57
00EC ; OutBuffer [9] = 0x06; //长度
00EC 86E0 ldi R24,6
00EE 80930900 sts _OutBuffer+9,R24
00F2 .dbline 58
00F2 ; OutBuffer [10] = local_magic_num[0]; //数据
00F2 20900000 lds R2,_local_magic_num
00F6 20920A00 sts _OutBuffer+10,R2
00FA .dbline 59
00FA ; OutBuffer [11] = local_magic_num[1];
00FA 20900100 lds R2,_local_magic_num+1
00FE 20920B00 sts _OutBuffer+11,R2
0102 .dbline 60
0102 ; OutBuffer [12] = local_magic_num[2];
0102 20900200 lds R2,_local_magic_num+2
0106 20920C00 sts _OutBuffer+12,R2
010A .dbline 61
010A ; OutBuffer [13] = local_magic_num[3];
010A 20900300 lds R2,_local_magic_num+3
010E 20920D00 sts _OutBuffer+13,R2
0112 .dbline 62
0112 ; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
0112 20910700 lds R18,_OutBuffer+7
0116 2A5F subi R18,250 ; addi 6
0118 00E0 ldi R16,<_OutBuffer
011A 10E0 ldi R17,>_OutBuffer
011C .dbline -2
011C .dbline 63
011C ; }
011C L31:
011C .dbline 0 ; func end
011C 0C940000 xjmp _ProcPPPSend
0120 .dbend
0120 .dbfunc e RejectProtocol _RejectProtocol fV
0120 ; InBuffer -> R20,R21
.even
0120 _RejectProtocol::
0120 0E940000 xcall push_gset1
0124 A801 movw R20,R16
0126 2297 sbiw R28,2
0128 .dbline -1
0128 .dbline 70
0128 ; /////////////////////////////////////////////////////////////
0128 ; /*
0128 ; LCP的协议拒绝
0128 ; */
0128 ; /////////////////////////////////////////////////////////////
0128 ; void RejectProtocol (BYTE *InBuffer)
0128 ; {
0128 .dbline 71
0128 ; OutBuffer [0] = PPP_ADD; //地址域
0128 8FEF ldi R24,255
012A 80930000 sts _OutBuffer,R24
012E .dbline 72
012E ; OutBuffer [1] = PPP_COMTROL; //控制域
012E 83E0 ldi R24,3
0130 80930100 sts _OutBuffer+1,R24
0134 .dbline 73
0134 ; OutBuffer [2] = 0xC0;
0134 80EC ldi R24,192
0136 80930200 sts _OutBuffer+2,R24
013A .dbline 74
013A ; OutBuffer [3] = 0x21;
013A 81E2 ldi R24,33
013C 80930300 sts _OutBuffer+3,R24
0140 .dbline 75
0140 ; OutBuffer [4] = LCP_PROTOCOL_REJECT; //代码域
0140 88E0 ldi R24,8
0142 80930400 sts _OutBuffer+4,R24
0146 .dbline 76
0146 ; OutBuffer [5] = 20; //标识域
0146 84E1 ldi R24,20
0148 80930500 sts _OutBuffer+5,R24
014C .dbline 77
014C ; OutBuffer [6] = 0; //长度
014C 2224 clr R2
014E 20920600 sts _OutBuffer+6,R2
0152 .dbline 78
0152 ; OutBuffer [7] = InBuffer[7] + 6;
0152 FA01 movw R30,R20
0154 8781 ldd R24,z+7
0156 8A5F subi R24,250 ; addi 6
0158 80930700 sts _OutBuffer+7,R24
015C .dbline 79
015C ; Move (&InBuffer[2], &OutBuffer[8], InBuffer [7] + 2);
015C 8781 ldd R24,z+7
015E 9927 clr R25
0160 0296 adiw R24,2
0162 9983 std y+1,R25
0164 8883 std y+0,R24
0166 20E0 ldi R18,<_OutBuffer+8
0168 30E0 ldi R19,>_OutBuffer+8
016A 8F01 movw R16,R30
016C 0E5F subi R16,254 ; offset = 2
016E 1F4F sbci R17,255
0170 0E940000 xcall _Move
0174 .dbline 80
0174 ; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
0174 20910700 lds R18,_OutBuffer+7
0178 2A5F subi R18,250 ; addi 6
017A 00E0 ldi R16,<_OutBuffer
017C 10E0 ldi R17,>_OutBuffer
017E 0E940000 xcall _ProcPPPSend
0182 .dbline -2
0182 .dbline 81
0182 ; }
0182 L49:
0182 2296 adiw R28,2
0184 0E940000 xcall pop_gset1
0188 .dbline 0 ; func end
0188 0895 ret
018A .dbsym r InBuffer 20 pc
018A .dbend
018A .dbfunc e IPAssignPacket _IPAssignPacket fV
.even
018A _IPAssignPacket::
018A .dbline -1
018A .dbline 88
018A ; /////////////////////////////////////////////////////////////
018A ; /*
018A ; IPCP的IP地址分配请求
018A ; */
018A ; /////////////////////////////////////////////////////////////
018A ; void IPAssignPacket (void)
018A ; {
018A .dbline 89
018A ; OutBuffer [0] = PPP_ADD; //地址域
018A 8FEF ldi R24,255
018C 80930000 sts _OutBuffer,R24
0190 .dbline 90
0190 ; OutBuffer [1] = PPP_COMTROL; //控制域
0190 83E0 ldi R24,3
0192 80930100 sts _OutBuffer+1,R24
0196 .dbline 91
0196 ; OutBuffer [2] = 0x80; //协议域
0196 80E8 ldi R24,128
0198 80930200 sts _OutBuffer+2,R24
019C .dbline 92
019C ; OutBuffer [3] = 0x21;
019C 81E2 ldi R24,33
019E 80930300 sts _OutBuffer+3,R24
01A2 .dbline 93
01A2 ; OutBuffer [4] = IPCP_CONFIG_REQUEST; //代码域
01A2 81E0 ldi R24,1
01A4 80930400 sts _OutBuffer+4,R24
01A8 .dbline 94
01A8 ; OutBuffer [5] = 0x01; //标识域
01A8 80930500 sts _OutBuffer+5,R24
01AC .dbline 95
01AC ; OutBuffer [6] = 0x00;
01AC 2224 clr R2
01AE 20920600 sts _OutBuffer+6,R2
01B2 .dbline 96
01B2 ; OutBuffer [7] = 0x0A; //长度
01B2 8AE0 ldi R24,10
01B4 80930700 sts _OutBuffer+7,R24
01B8 .dbline 97
01B8 ; OutBuffer [8] = 0x03; //类型
01B8 83E0 ldi R24,3
01BA 80930800 sts _OutBuffer+8,R24
01BE .dbline 98
01BE ; OutBuffer [9] = 0x06; //长度
01BE 86E0 ldi R24,6
01C0 80930900 sts _OutBuffer+9,R24
01C4 .dbline 99
01C4 ; OutBuffer [10] = 0x00; //数据
01C4 20920A00 sts _OutBuffer+10,R2
01C8 .dbline 100
01C8 ; OutBuffer [11] = 0x00;
01C8 20920B00 sts _OutBuffer+11,R2
01CC .dbline 101
01CC ; OutBuffer [12] = 0x00;
01CC 20920C00 sts _OutBuffer+12,R2
01D0 .dbline 102
01D0 ; OutBuffer [13] = 0x00;
01D0 20920D00 sts _OutBuffer+13,R2
01D4 .dbline 103
01D4 ; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
01D4 20910700 lds R18,_OutBuffer+7
01D8 2A5F subi R18,250 ; addi 6
01DA 00E0 ldi R16,<_OutBuffer
01DC 10E0 ldi R17,>_OutBuffer
01DE .dbline -2
01DE .dbline 104
01DE ; }
01DE L59:
01DE .dbline 0 ; func end
01DE 0C940000 xjmp _ProcPPPSend
01E2 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -