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

📄 ppppacket.lis

📁 在串口上PPP拨号上网的源程序(实现PPP协议栈)
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -