📄 ppp.s
字号:
add R30,R24
adc R31,R25
ldd R4,z+0
clr R5
std y+1,R5
std y+0,R4
ldi R24,<_OutBuffer
ldi R25,>_OutBuffer
ldd R18,y+62
ldd R19,y+63
add R18,R24
adc R19,R25
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R16,R2
add R16,R24
adc R17,R25
xcall _Move
.dbline 214
; OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
lds R3,_OutBuffer+7
add R3,R2
sts _OutBuffer+7,R3
.dbline 215
; length1+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
ldd R0,y+62
ldd R1,y+63
add R0,R2
adc R1,R3
std y+63,R1
std y+62,R0
.dbline 216
; rej = 1;
ldi R20,1
.dbline 217
; }//end of if((temp_buffer1[i]!=0x01)||(temp_buffer1[i]!=0x02)||(temp_buffer1[i]!=0x05))
L81:
.dbline 218
L78:
.dbline 207
inc R22
L80:
.dbline 207
cp R22,R10
brsh X20
xjmp L77
X20:
.dbline 219
; }//end of for(i=0;i<j;i++)
; if(rej == 1)
cpi R20,1
brne L84
.dbline 220
; {
.dbline 221
; OutBuffer [4] = LCP_CONFIG_REJECT;
ldi R24,4
sts _OutBuffer+4,R24
.dbline 222
; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
lds R18,_OutBuffer+7
subi R18,250 ; addi 6
ldi R16,<_OutBuffer
ldi R17,>_OutBuffer
xcall _ProcPPPSend
.dbline 223
; return;
xjmp L62
L84:
.dbline 226
; }//end of if(rej == 1)
;
; for(i=0;i<j;i++)
clr R22
xjmp L91
L88:
.dbline 227
; {
.dbline 228
; if(temp_buffer1[i]==LCP_OPT_MRU)
movw R24,R28
adiw R24,42
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,1
breq X21
xjmp L92
X21:
.dbline 229
; {
.dbline 231
;
; if(((((WORD)InBuffer[temp_buffer2[i]+2])<<8)+InBuffer [temp_buffer2[i]+3])>MRU)
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R30,R2
adiw R30,3
add R30,R24
adc R31,R25
ldd R4,z+0
movw R30,R2
adiw R30,2
add R30,R24
adc R31,R25
ldd R2,z+0
mov R3,R2
mov R2,R4
lds R4,_MRU
lds R5,_MRU+1
cp R4,R2
cpc R5,R3
brlo X22
xjmp L94
X22:
.dbline 232
; {
.dbline 233
; Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R30,R2
adiw R30,1
add R30,R24
adc R31,R25
ldd R4,z+0
clr R5
std y+1,R5
std y+0,R4
ldi R24,<_OutBuffer
ldi R25,>_OutBuffer
ldd R18,y+62
ldd R19,y+63
add R18,R24
adc R19,R25
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R16,R2
add R16,R24
adc R17,R25
xcall _Move
.dbline 234
; OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
lds R3,_OutBuffer+7
add R3,R2
sts _OutBuffer+7,R3
.dbline 235
; OutBuffer[length1+2]=MRU>>8;
ldi R24,<_OutBuffer
ldi R25,>_OutBuffer
ldd R30,y+62
ldd R31,y+63
adiw R30,2
add R30,R24
adc R31,R25
lds R2,_MRU
lds R3,_MRU+1
mov R2,R3
clr R3
std z+0,R2
.dbline 236
; OutBuffer[length1+3]=MRU;
ldd R30,y+62
ldd R31,y+63
adiw R30,3
add R30,R24
adc R31,R25
lds R2,_MRU
lds R3,_MRU+1
std z+0,R2
.dbline 237
; length1+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
ldd R0,y+62
ldd R1,y+63
add R0,R2
adc R1,R3
std y+63,R1
std y+62,R0
.dbline 238
; nak=1;
clr R14
inc R14
.dbline 239
; }
L94:
.dbline 241
;
; }
L92:
.dbline 242
; if(temp_buffer1[i]==LCP_OPT_ASYNC_MAP)
movw R24,R28
adiw R24,42
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,2
breq X23
xjmp L97
X23:
.dbline 243
; {
.dbline 244
; if((InBuffer[temp_buffer2[i]+2]!=0x00)||
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R30,R2
adiw R30,2
add R30,R24
adc R31,R25
ldd R4,z+0
tst R4
brne L103
movw R30,R2
adiw R30,3
add R30,R24
adc R31,R25
ldd R4,z+0
tst R4
brne L103
movw R30,R2
adiw R30,4
add R30,R24
adc R31,R25
ldd R4,z+0
tst R4
brne L103
movw R30,R2
adiw R30,5
add R30,R24
adc R31,R25
ldd R2,z+0
tst R2
brne X24
xjmp L99
X24:
L103:
.dbline 249
; (InBuffer[temp_buffer2[i]+3]!=0x00)||
; (InBuffer[temp_buffer2[i]+4]!=0x00)||
; (InBuffer[temp_buffer2[i]+5]!=0x00)
; )
; {
.dbline 250
; Move (&InBuffer[temp_buffer2[i]],&OutBuffer[length1],InBuffer[temp_buffer2[i]+1]);
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R30,R2
adiw R30,1
add R30,R24
adc R31,R25
ldd R4,z+0
clr R5
std y+1,R5
std y+0,R4
ldi R24,<_OutBuffer
ldi R25,>_OutBuffer
ldd R18,y+62
ldd R19,y+63
add R18,R24
adc R19,R25
ldi R24,<_InBuffer
ldi R25,>_InBuffer
movw R16,R2
add R16,R24
adc R17,R25
xcall _Move
.dbline 251
; OutBuffer[7]+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
lds R3,_OutBuffer+7
add R3,R2
sts _OutBuffer+7,R3
.dbline 252
; OutBuffer[length1+2]=0x00;
ldi R24,<_OutBuffer
ldi R25,>_OutBuffer
ldd R30,y+62
ldd R31,y+63
adiw R30,2
add R30,R24
adc R31,R25
clr R2
std z+0,R2
.dbline 253
; OutBuffer[length1+3]=0x00;
ldd R30,y+62
ldd R31,y+63
adiw R30,3
add R30,R24
adc R31,R25
std z+0,R2
.dbline 254
; OutBuffer[length1+4]=0x00;
ldd R30,y+62
ldd R31,y+63
adiw R30,4
add R30,R24
adc R31,R25
std z+0,R2
.dbline 255
; OutBuffer[length1+5]=0x00;
ldd R30,y+62
ldd R31,y+63
adiw R30,5
add R30,R24
adc R31,R25
std z+0,R2
.dbline 256
; length1+=InBuffer[temp_buffer2[i]+1];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,1
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
ldd R0,y+62
ldd R1,y+63
add R0,R2
adc R1,R3
std y+63,R1
std y+62,R0
.dbline 257
; nak=1;
clr R14
inc R14
.dbline 258
; }//end of if((InBuffer[temp_buffer2[i]+2]!==0x00)||...
L99:
.dbline 259
; }//end of if(temp_buffer1[i]==02)
L97:
.dbline 260
L89:
.dbline 226
inc R22
L91:
.dbline 226
cp R22,R10
brsh X25
xjmp L88
X25:
.dbline 261
; }//end of for(i=0;i<j;i++)
; if(nak==1)
mov R24,R14
cpi R24,1
brne L105
.dbline 262
; {
.dbline 263
; OutBuffer [4] = LCP_CONFIG_NAK;
ldi R24,3
sts _OutBuffer+4,R24
.dbline 264
; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
lds R18,_OutBuffer+7
subi R18,250 ; addi 6
ldi R16,<_OutBuffer
ldi R17,>_OutBuffer
xcall _ProcPPPSend
.dbline 265
; return;
xjmp L62
L105:
.dbline 268
; }
;
; for(i=0;i<j;i++)
clr R22
xjmp L112
L109:
.dbline 269
; {
.dbline 270
; if((temp_buffer1[i]==LCP_OPT_MAGIC))
movw R24,R28
adiw R24,42
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,5
breq X26
xjmp L113
X26:
.dbline 271
; {
.dbline 272
; remote_magic_num[0]=InBuffer[temp_buffer2[i]+2];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,2
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
sts _remote_magic_num,R2
.dbline 273
; remote_magic_num[1]=InBuffer[temp_buffer2[i]+3];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,3
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
sts _remote_magic_num+1,R2
.dbline 274
; remote_magic_num[2]=InBuffer[temp_buffer2[i]+4];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,4
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
sts _remote_magic_num+2,R2
.dbline 275
; remote_magic_num[3]=InBuffer[temp_buffer2[i]+5];
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
adiw R24,2
add R30,R24
adc R31,R25
push R26
push R27
ldd R26,z+0
ldd R27,z+1
movw R30,R26
pop R27
pop R26
adiw R30,5
ldi R24,<_InBuffer
ldi R25,>_InBuffer
add R30,R24
adc R31,R25
ldd R2,z+0
sts _remote_magic_num+3,R2
.dbline 276
; }
L113:
.dbline 277
L110:
.dbline 268
inc R22
L112:
.dbline 268
cp R22,R10
brsh X27
xjmp L109
X27:
.dbline 279
; }
;
; Move (InBuffer, OutBuffer, InBuffer[7]+4);
lds R24,_InBuffer+7
clr R25
adiw R24,4
std y+1,R25
std y+0,R24
ldi R18,<_OutBuffer
ldi R19,>_OutBuffer
ldi R16,<_InBuffer
ldi R17,>_InBuffer
xcall _Move
.dbline 280
; OutBuffer [4] = LCP_CONFIG_ACK;
ldi R24,2
sts _OutBuffer+4,R24
.dbline 281
; ProcPPPSend ((BYTE *)OutBuffer, OutBuffer[7] + 6);
lds R18,_OutBuffer+7
subi R18,250 ; addi 6
ldi R16,<_OutBuffer
ldi R17,>_OutBuffer
xcall _ProcPPPSend
.dbline 282
; break;
xjmp L62
L122:
.dbline 287
.dbline 288
ldi R24,<_InBuffer
ldi R25,>_InBuffer
ldd R30,y+62
ldd R31,y+63
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
adiw R24,42
mov R30,R10
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 289
ldi R24,2
mul R24,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -