📄 httpd.lis
字号:
00E4 7CC0 xjmp L21
00E6 X10:
00E6 .dbline 242
00E6 ; uip_appdata[1] == ISO_E &&
00E6 ; uip_appdata[2] == ISO_T &&
00E6 ; uip_appdata[3] == ISO_space)
00E6 ; {
00E6 .dbline 244
00E6 ; /* Find the file we are looking for. */
00E6 ; for(i = 4; i < 40; ++i)
00E6 84E0 ldi R24,4
00E8 90E0 ldi R25,0
00EA 5C01 movw R10,R24
00EC 1CC0 xjmp L26
00EE L23:
00EE .dbline 245
00EE ; {
00EE .dbline 246
00EE ; if(uip_appdata[i]==ISO_space||uip_appdata[i] == ISO_cr||uip_appdata[i] == ISO_nl)
00EE 20900000 lds R2,_uip_appdata
00F2 30900100 lds R3,_uip_appdata+1
00F6 2501 movw R4,R10
00F8 420C add R4,R2
00FA 531C adc R5,R3
00FC F201 movw R30,R4
00FE 8081 ldd R24,z+0
0100 8032 cpi R24,32
0102 21F0 breq L30
0104 8D30 cpi R24,13
0106 11F0 breq L30
0108 8A30 cpi R24,10
010A 51F4 brne L27
010C L30:
010C .dbline 247
010C ; {
010C .dbline 248
010C ; uip_appdata[i] = 0;
010C 20900000 lds R2,_uip_appdata
0110 30900100 lds R3,_uip_appdata+1
0114 F501 movw R30,R10
0116 E20D add R30,R2
0118 F31D adc R31,R3
011A 2224 clr R2
011C 2082 std z+0,R2
011E .dbline 249
011E ; break;
011E 08C0 xjmp L25
0120 L27:
0120 .dbline 251
0120 L24:
0120 .dbline 244
0120 C501 movw R24,R10
0122 0196 adiw R24,1
0124 5C01 movw R10,R24
0126 L26:
0126 .dbline 244
0126 C501 movw R24,R10
0128 8832 cpi R24,40
012A E0E0 ldi R30,0
012C 9E07 cpc R25,R30
012E F8F2 brlo L23
0130 L25:
0130 .dbline 254
0130 ; }
0130 ; }
0130 ;
0130 ; /* Check for a request for "/". */
0130 ; if(uip_appdata[4] == ISO_slash && uip_appdata[5] == 0)
0130 E0910000 lds R30,_uip_appdata
0134 F0910100 lds R31,_uip_appdata+1
0138 8481 ldd R24,z+4
013A 8F32 cpi R24,47
013C 89F4 brne L31
013E E0910000 lds R30,_uip_appdata
0142 F0910100 lds R31,_uip_appdata+1
0146 2580 ldd R2,z+5
0148 2220 tst R2
014A 51F4 brne L31
014C .dbline 255
014C ; {
014C .dbline 257
014C ; //load_web_page(index_html);
014C ; fs_open(file_index_html.name, &fsfile);
014C 9E01 movw R18,R28
014E 285F subi R18,248 ; offset = 8
0150 3F4F sbci R19,255
0152 00910200 lds R16,_file_index_html+2
0156 10910300 lds R17,_file_index_html+2+1
015A 0E940000 xcall _fs_open
015E .dbline 258
015E ; }
015E 00C1 xjmp L22
0160 L31:
0160 .dbline 260
0160 ; else
0160 ; {
0160 .dbline 261
0160 ; i=5;
0160 85E0 ldi R24,5
0162 90E0 ldi R25,0
0164 5C01 movw R10,R24
0166 11C0 xjmp L35
0168 L34:
0168 .dbline 263
0168 .dbline 264
0168 20900000 lds R2,_uip_appdata
016C 30900100 lds R3,_uip_appdata+1
0170 F501 movw R30,R10
0172 E20D add R30,R2
0174 F31D adc R31,R3
0176 2080 ldd R2,z+0
0178 CE01 movw R24,R28
017A F501 movw R30,R10
017C 3597 sbiw R30,5
017E E80F add R30,R24
0180 F91F adc R31,R25
0182 2082 std z+0,R2
0184 .dbline 265
0184 C501 movw R24,R10
0186 0196 adiw R24,1
0188 5C01 movw R10,R24
018A .dbline 266
018A L35:
018A .dbline 262
018A ; while((uip_appdata[i] != ISO_dot) && (uip_appdata[i] != ISO_space))
018A 20900000 lds R2,_uip_appdata
018E 30900100 lds R3,_uip_appdata+1
0192 2501 movw R4,R10
0194 420C add R4,R2
0196 531C adc R5,R3
0198 F201 movw R30,R4
019A 8081 ldd R24,z+0
019C 8E32 cpi R24,46
019E 11F0 breq L37
01A0 8032 cpi R24,32
01A2 11F7 brne L34
01A4 L37:
01A4 .dbline 267
01A4 ; {
01A4 ; opfn[i-5]=uip_appdata[i];
01A4 ; i++;
01A4 ; }
01A4 ; opfn[i-5]='\r';
01A4 CE01 movw R24,R28
01A6 F501 movw R30,R10
01A8 3597 sbiw R30,5
01AA E80F add R30,R24
01AC F91F adc R31,R25
01AE 8DE0 ldi R24,13
01B0 8083 std z+0,R24
01B2 .dbline 268
01B2 ; fs_open(opfn, &fsfile);
01B2 9E01 movw R18,R28
01B4 285F subi R18,248 ; offset = 8
01B6 3F4F sbci R19,255
01B8 8E01 movw R16,R28
01BA 0E940000 xcall _fs_open
01BE .dbline 269
01BE ; if(!fs_open((char *)&uip_appdata[4], &fsfile))
01BE 9E01 movw R18,R28
01C0 285F subi R18,248 ; offset = 8
01C2 3F4F sbci R19,255
01C4 00910000 lds R16,_uip_appdata
01C8 10910100 lds R17,_uip_appdata+1
01CC 0C5F subi R16,252 ; offset = 4
01CE 1F4F sbci R17,255
01D0 0E940000 xcall _fs_open
01D4 0030 cpi R16,0
01D6 0107 cpc R16,R17
01D8 09F0 breq X11
01DA C2C0 xjmp L22
01DC X11:
01DC X1:
01DC .dbline 270
01DC ; {
01DC .dbline 271
01DC ; PRINTLN("couldn't open file");
01DC .dbline 273
01DC ; //fs_open(file_404_html.name, &fsfile);
01DC ; }
01DC .dbline 275
01DC ;
01DC ; }
01DC .dbline 276
01DC ; }
01DC C1C0 xjmp L22
01DE L21:
01DE .dbline 277
01DE ; else if(uip_appdata[0] == ISO_P &&
01DE E0910000 lds R30,_uip_appdata
01E2 F0910100 lds R31,_uip_appdata+1
01E6 8081 ldd R24,z+0
01E8 8035 cpi R24,80
01EA 09F0 breq X12
01EC B5C0 xjmp L40
01EE X12:
01EE 8181 ldd R24,z+1
01F0 8F34 cpi R24,79
01F2 09F0 breq X13
01F4 B1C0 xjmp L40
01F6 X13:
01F6 E0910000 lds R30,_uip_appdata
01FA F0910100 lds R31,_uip_appdata+1
01FE 8281 ldd R24,z+2
0200 8335 cpi R24,83
0202 09F0 breq X14
0204 A9C0 xjmp L40
0206 X14:
0206 E0910000 lds R30,_uip_appdata
020A F0910100 lds R31,_uip_appdata+1
020E 8381 ldd R24,z+3
0210 8435 cpi R24,84
0212 09F0 breq X15
0214 A1C0 xjmp L40
0216 X15:
0216 E0910000 lds R30,_uip_appdata
021A F0910100 lds R31,_uip_appdata+1
021E 8481 ldd R24,z+4
0220 8032 cpi R24,32
0222 09F0 breq X16
0224 99C0 xjmp L40
0226 X16:
0226 .dbline 282
0226 ; uip_appdata[1] == ISO_O &&
0226 ; uip_appdata[2] == ISO_S &&
0226 ; uip_appdata[3] == ISO_T &&
0226 ; uip_appdata[4] == ISO_space)
0226 ; {
0226 .dbline 283
0226 ; for(i=0;i<1496;i++)
0226 AA24 clr R10
0228 BB24 clr R11
022A 28C0 xjmp L45
022C L42:
022C .dbline 284
022C ; {
022C .dbline 285
022C ; if((uip_appdata[i]==ISO_cr)&&(uip_appdata[i+1]==ISO_nl)&&(uip_appdata[i+2]==ISO_cr)&&(uip_appdata[i+3]==ISO_nl))
022C 20900000 lds R2,_uip_appdata
0230 30900100 lds R3,_uip_appdata+1
0234 F501 movw R30,R10
0236 E20D add R30,R2
0238 F31D adc R31,R3
023A 8081 ldd R24,z+0
023C 8D30 cpi R24,13
023E D9F4 brne L46
0240 F501 movw R30,R10
0242 3196 adiw R30,1
0244 E20D add R30,R2
0246 F31D adc R31,R3
0248 8081 ldd R24,z+0
024A 8A30 cpi R24,10
024C A1F4 brne L46
024E F501 movw R30,R10
0250 3296 adiw R30,2
0252 E20D add R30,R2
0254 F31D adc R31,R3
0256 8081 ldd R24,z+0
0258 8D30 cpi R24,13
025A 69F4 brne L46
025C F501 movw R30,R10
025E 3396 adiw R30,3
0260 E20D add R30,R2
0262 F31D adc R31,R3
0264 8081 ldd R24,z+0
0266 8A30 cpi R24,10
0268 31F4 brne L46
026A .dbline 286
026A ; {
026A .dbline 287
026A ; post_data=uip_appdata[i+8];
026A F501 movw R30,R10
026C 3896 adiw R30,8
026E E20D add R30,R2
0270 F31D adc R31,R3
0272 C080 ldd R12,z+0
0274 .dbline 288
0274 ; break;
0274 09C0 xjmp L44
0276 L46:
0276 .dbline 290
0276 L43:
0276 .dbline 283
0276 C501 movw R24,R10
0278 0196 adiw R24,1
027A 5C01 movw R10,R24
027C L45:
027C .dbline 283
027C C501 movw R24,R10
027E 883D cpi R24,216
0280 E5E0 ldi R30,5
0282 9E07 cpc R25,R30
0284 08F4 brsh X17
0286 D2CF xjmp L42
0288 X17:
0288 L44:
0288 .dbline 291
0288 ; }
0288 ; }
0288 ; if(post_data==0x31){LED1_ON;LED2_OFF;}
0288 8C2D mov R24,R12
028A 8133 cpi R24,49
028C 29F4 brne L48
028E .dbline 291
028E .dbline 291
028E 82B3 in R24,0x12
0290 8F7E andi R24,239
0292 82BB out 0x12,R24
0294 .dbline 291
0294 959A sbi 0x12,5
0296 .dbline 291
0296 0AC0 xjmp L49
0298 L48:
0298 .dbline 292
0298 ; else if(post_data==0x32){LED2_ON;LED1_OFF;}
0298 8C2D mov R24,R12
029A 8233 cpi R24,50
029C 29F4 brne L50
029E .dbline 292
029E .dbline 292
029E 82B3 in R24,0x12
02A0 8F7D andi R24,223
02A2 82BB out 0x12,R24
02A4 .dbline 292
02A4 949A sbi 0x12,4
02A6 .dbline 292
02A6 02C0 xjmp L51
02A8 L50:
02A8 .dbline 293
02A8 ; else{LED2_OFF;LED1_OFF;}
02A8 .dbline 293
02A8 959A sbi 0x12,5
02AA .dbline 293
02AA 949A sbi 0x12,4
02AC .dbline 293
02AC L51:
02AC L49:
02AC .dbline 296
02AC ;
02AC ; /* Check for a request for "/". */
02AC ; if(uip_appdata[5] == ISO_slash && uip_appdata[6] == 0)
02AC E0910000 lds R30,_uip_appdata
02B0 F0910100 lds R31,_uip_appdata+1
02B4 8581 ldd R24,z+5
02B6 8F32 cpi R24,47
02B8 89F4 brne L52
02BA E0910000 lds R30,_uip_appdata
02BE F0910100 lds R31,_uip_appdata+1
02C2 2680 ldd R2,z+6
02C4 2220 tst R2
02C6 51F4 brne L52
02C8 .dbline 297
02C8 ; {
02C8 .dbline 299
02C8 ; //load_web_page(index_html);
02C8 ; fs_open(file_index_html.name, &fsfile);
02C8 9E01 movw R18,R28
02CA 285F subi R18,248 ; offset = 8
02CC 3F4F sbci R19,255
02CE 00910200 lds R16,_file_index_html+2
02D2 10910300 lds R17,_file_index_html+2+1
02D6 0E940000 xcall _fs_open
02DA .dbline 300
02DA ; }
02DA 42C0 xjmp L41
02DC L52:
02DC .dbline 302
02DC ; else
02DC ; {
02DC .dbline 303
02DC ; i=6;
02DC 86E0 ldi R24,6
02DE 90E0 ldi R25,0
02E0 5C01 movw R10,R24
02E2 11C0 xjmp L56
02E4 L55:
02E4 .dbline 305
02E4 .dbline 306
02E4 20900000 lds R2,_uip_appdata
02E8 30900100 lds R3,_uip_appdata+1
02EC F501 movw R30,R10
02EE E20D add R30,R2
02F0 F31D adc R31,R3
02F2 2080 ldd R2,z+0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -