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

📄 httpd.lis

📁 uIP是免费的TCP/IP协议栈,我们将它移植到我们的AVR以太网开发板中
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0514 30920100          sts _uip_slen+1,R3
 0518 20920000          sts _uip_slen,R2
 051C                   .dbline 387
 051C                   .dbline 387
 051C                   .dbline 388
 051C           ;     }
 051C                   .dbline 393
 051C           ; 
 051C           ;       
 051C           ;     /* Finally, return to uIP. Our outgoing packet will soon be on its
 051C           ;        way... */
 051C           ;     return;
 051C 03C0              xjmp L8
 051E           L9:
 051E                   .dbline 397
 051E 80E2              ldi R24,32
 0520 80930000          sts _uip_flags,R24
 0524                   .dbline 398
 0524           L10:
 0524                   .dbline -2
 0524           L8:
 0524 2C96              adiw R28,12
 0526 0E940000          xcall pop_gset4x
 052A                   .dbline 0 ; func end
 052A 0895              ret
 052C                   .dbsym l fsfile 8 S[fs_file]
 052C                   .dbsym l opfn 0 A[8:8]c
 052C                   .dbsym r i 10 s
 052C                   .dbsym r j 10 I
 052C                   .dbsym r post_data 12 c
 052C                   .dbend
 052C                   .dbfunc s next_scriptline _next_scriptline fV
                        .even
 052C           _next_scriptline:
 052C                   .dbline -1
 052C                   .dbline 407
 052C           ; 
 052C           ;   default:
 052C           ;     /* Should never happen. */
 052C           ;     uip_abort();
 052C           ;     break;
 052C           ;   }  
 052C           ; }
 052C           ; /*-----------------------------------------------------------------------------------*/
 052C           ; /* next_scriptline():
 052C           ;  *
 052C           ;  * Reads the script until it finds a newline. */
 052C           ; static void
 052C           ; next_scriptline(void)
 052C           ; {
 052C           L83:
 052C                   .dbline 409
 052C           ;   /* Loop until we find a newline character. */
 052C           ;   do {
 052C                   .dbline 410
 052C           ;     ++(hs->script);
 052C 80910000          lds R24,_hs
 0530 90910100          lds R25,_hs+1
 0534 0596              adiw R24,5
 0536 FC01              movw R30,R24
 0538 8081              ldd R24,z+0
 053A 9181              ldd R25,z+1
 053C 0196              adiw R24,1
 053E 9183              std z+1,R25
 0540 8083              std z+0,R24
 0542                   .dbline 411
 0542           L84:
 0542                   .dbline 411
 0542           ;   } while(hs->script[0] != ISO_nl);
 0542 E0910000          lds R30,_hs
 0546 F0910100          lds R31,_hs+1
 054A A581              ldd R26,z+5
 054C B681              ldd R27,z+6
 054E 8C91              ld R24,x
 0550 8A30              cpi R24,10
 0552 61F7              brne L83
 0554                   .dbline 414
 0554           ; 
 0554           ;   /* Eat up the newline as well. */
 0554           ;   ++(hs->script);
 0554 3596              adiw R30,5
 0556 8081              ldd R24,z+0
 0558 9181              ldd R25,z+1
 055A 0196              adiw R24,1
 055C 9183              std z+1,R25
 055E 8083              std z+0,R24
 0560                   .dbline -2
 0560           L82:
 0560                   .dbline 0 ; func end
 0560 0895              ret
 0562                   .dbend
 0562                   .dbfunc s next_scriptstate _next_scriptstate fV
 0562           ;         fsfile -> y+0
 0562           ;              i -> R12
                        .even
 0562           _next_scriptstate:
 0562 0E940000          xcall push_gset4x
 0566 2497              sbiw R28,4
 0568                   .dbline -1
 0568                   .dbline 423
 0568           ; }
 0568           ; /*-----------------------------------------------------------------------------------*/
 0568           ; /* next_sciptstate:
 0568           ;  *
 0568           ;  * Reads one line of script and decides what to do next.
 0568           ;  */
 0568           ; static void
 0568           ; next_scriptstate(void)
 0568           ; {
 0568           L87:
 0568                   .dbline 428
 0568           ;   struct fs_file fsfile;
 0568           ;   u8_t i;
 0568           ; 
 0568           ;  again:
 0568           ;   switch(hs->script[0]) {
 0568 E0910000          lds R30,_hs
 056C F0910100          lds R31,_hs+1
 0570 A581              ldd R26,z+5
 0572 B681              ldd R27,z+6
 0574 AC90              ld R10,x
 0576 BB24              clr R11
 0578 C501              movw R24,R10
 057A 8336              cpi R24,99
 057C E0E0              ldi R30,0
 057E 9E07              cpc R25,R30
 0580 09F4              brne X22
 0582 4FC0              xjmp L96
 0584           X22:
 0584 83E6              ldi R24,99
 0586 8A15              cp R24,R10
 0588 9B05              cpc R25,R11
 058A 94F0              brlt L105
 058C           L104:
 058C C501              movw R24,R10
 058E 8332              cpi R24,35
 0590 E0E0              ldi R30,0
 0592 9E07              cpc R25,R30
 0594 09F4              brne X23
 0596 8FC0              xjmp L102
 0598           X23:
 0598 8332              cpi R24,35
 059A E0E0              ldi R30,0
 059C 9E07              cpc R25,R30
 059E 0CF4              brge X24
 05A0 96C0              xjmp L88
 05A2           X24:
 05A2           L106:
 05A2 C501              movw R24,R10
 05A4 8E32              cpi R24,46
 05A6 E0E0              ldi R30,0
 05A8 9E07              cpc R25,R30
 05AA 09F4              brne X25
 05AC 86C0              xjmp L103
 05AE           X25:
 05AE 8FC0              xjmp L88
 05B0           L105:
 05B0 C501              movw R24,R10
 05B2 8936              cpi R24,105
 05B4 E0E0              ldi R30,0
 05B6 9E07              cpc R25,R30
 05B8 09F4              brne X26
 05BA 59C0              xjmp L98
 05BC           X26:
 05BC 8936              cpi R24,105
 05BE E0E0              ldi R30,0
 05C0 9E07              cpc R25,R30
 05C2 0CF4              brge X27
 05C4 84C0              xjmp L88
 05C6           X27:
 05C6           L107:
 05C6 C501              movw R24,R10
 05C8 8437              cpi R24,116
 05CA E0E0              ldi R30,0
 05CC 9E07              cpc R25,R30
 05CE 09F0              breq L91
 05D0 7EC0              xjmp L88
 05D2           X19:
 05D2                   .dbline 428
 05D2           L91:
 05D2                   .dbline 431
 05D2           ;   case ISO_t:
 05D2           ;     /* Send a text string. */
 05D2           ;     hs->state = HTTP_TEXT;
 05D2 82E0              ldi R24,2
 05D4 E0910000          lds R30,_hs
 05D8 F0910100          lds R31,_hs+1
 05DC 8083              std z+0,R24
 05DE                   .dbline 432
 05DE           ;     hs->dataptr = &hs->script[2];
 05DE E0910000          lds R30,_hs
 05E2 F0910100          lds R31,_hs+1
 05E6 8581              ldd R24,z+5
 05E8 9681              ldd R25,z+6
 05EA 0296              adiw R24,2
 05EC 9483              std z+4,R25
 05EE 8383              std z+3,R24
 05F0                   .dbline 435
 05F0 CC24              clr R12
 05F2 01C0              xjmp L95
 05F4           L92:
 05F4                   .dbline 435
 05F4           L93:
 05F4                   .dbline 435
 05F4 C394              inc R12
 05F6           L95:
 05F6                   .dbline 435
 05F6           ; 
 05F6           ;     /* Calculate length of string. */
 05F6           ;     for(i = 0; hs->dataptr[i] != ISO_nl; ++i);
 05F6 E0910000          lds R30,_hs
 05FA F0910100          lds R31,_hs+1
 05FE 2380              ldd R2,z+3
 0600 3480              ldd R3,z+4
 0602 EC2D              mov R30,R12
 0604 FF27              clr R31
 0606 E20D              add R30,R2
 0608 F31D              adc R31,R3
 060A 8081              ldd R24,z+0
 060C 8A30              cpi R24,10
 060E 91F7              brne L92
 0610                   .dbline 436
 0610           ;     hs->count = i;    
 0610 2C2C              mov R2,R12
 0612 3324              clr R3
 0614 E0910000          lds R30,_hs
 0618 F0910100          lds R31,_hs+1
 061C 3282              std z+2,R3
 061E 2182              std z+1,R2
 0620                   .dbline 437
 0620           ;     break;
 0620 59C0              xjmp L89
 0622           L96:
 0622                   .dbline 440
 0622           ;   case ISO_c:
 0622           ;     /* Call a function. */
 0622           ;     hs->state = HTTP_FUNC;
 0622 83E0              ldi R24,3
 0624 E0910000          lds R30,_hs
 0628 F0910100          lds R31,_hs+1
 062C 8083              std z+0,R24
 062E                   .dbline 441
 062E           ;     hs->dataptr = NULL;
 062E 2224              clr R2
 0630 3324              clr R3
 0632 E0910000          lds R30,_hs
 0636 F0910100          lds R31,_hs+1
 063A 3482              std z+4,R3
 063C 2382              std z+3,R2
 063E                   .dbline 442
 063E           ;     hs->count = 0;
 063E 3282              std z+2,R3
 0640 2182              std z+1,R2
 0642                   .dbline 443
 0642           ;     cgitab[hs->script[2] - ISO_a](0);
 0642 0027              clr R16
 0644 AF93              push R26
 0646 BF93              push R27
 0648 A581              ldd R26,z+5
 064A B681              ldd R27,z+6
 064C FD01              movw R30,R26
 064E BF91              pop R27
 0650 AF91              pop R26
 0652 2280              ldd R2,z+2
 0654 82E0              ldi R24,2
 0656 829D              mul R24,R2
 0658 F001              movw R30,R0
 065A 80E0              ldi R24,<_cgitab-194
 065C 90E0              ldi R25,>_cgitab-194
 065E E80F              add R30,R24
 0660 F91F              adc R31,R25
 0662 A081              ldd R26,z+0
 0664 B181              ldd R27,z+1
 0666 FD01              movw R30,R26
 0668 0E940000          xcall xicall
 066C                   .dbline 444
 066C           ;     break;
 066C 33C0              xjmp L89
 066E           L98:
 066E                   .dbline 447
 066E           ;   case ISO_i:   
 066E           ;     /* Include a file. */
 066E           ;     hs->state = HTTP_FILE;
 066E 81E0              ldi R24,1
 0670 E0910000          lds R30,_hs
 0674 F0910100          lds R31,_hs+1
 0678 8083              std z+0,R24
 067A                   .dbline 448
 067A           ;     if(!fs_open(&hs->script[2], &fsfile)) {
 067A 9E01              movw R18,R28
 067C E0910000          lds R30,_hs
 0680 F0910100          lds R31,_hs+1
 0684 0581              ldd R16,z+5
 0686 1681              ldd R17,z+6
 0688 0E5F              subi R16,254  ; offset = 2
 068A 1F4F              sbci R17,255
 068C 0E940000          xcall _fs_open
 0690 0030              cpi R16,0
 0692 0107              cpc R16,R17
 0694 19F4              brne L99
 0696           X20:
 0696                   .dbline 448
 0696                   .dbline 449
 0696           ;       uip_abort();
 0696 80E2              ldi R24,32
 0698 80930000          sts _uip_flags,R24
 069C                   .dbline 450
 069C           ;     }
 069C           L99:
 069C                   .dbline 451
 069C           ;     hs->dataptr = fsfile.data;
 069C 2880              ldd R2,y+0
 069E 3980              ldd R3,y+1
 06A0 E0910000          lds R30,_hs
 06A4 F0910100          lds R31,_hs+1
 06A8 3482              std z+4,R3
 06AA 2382              std z+3,R2
 06AC                   .dbline 452
 06AC           ;     hs->count = fsfile.len;
 06AC 2A80              ldd R2,y+2
 06AE 3B80              ldd R3,y+3
 06B0 3282              std z+2,R3
 06B2 2182              std z+1,R2
 06B4                   .dbline 453
 06B4           ;     break;
 06B4 0FC0              xjmp L89
 06B6           L102:
 06B6                   .dbline 456
 06B6           ;   case ISO_hash:
 06B6           ;     /* Comment line. */
 06B6           ;     next_scriptline();
 06B6 3ADF              xcall _next_scriptline
 06B8                   .dbline 457
 06B8           ;     goto again;
 06B8 57CF              xjmp L87
 06BA           X21:
 06BA                   .dbline 458
 06BA           ;     break;
 06BA           L103:
 06BA                   .dbline 461
 06BA           ;   case ISO_period:
 06BA           ;     /* End of script. */
 06BA           ;     hs->state = HTTP_END;
 06BA 84E0              ldi R24,4
 06BC E0910000          lds R30,_hs
 06C0 F0910100          lds R31,_hs+1
 06C4 8083              std z+0,R24
 06C6                   .dbline 462
 06C6           ;     uip_close();
 06C6 80E1              ldi R24,16
 06C8 80930000          sts _uip_flags,R24
 06CC                   .dbline 463
 06CC           ;     break;
 06CC 03C0              xjmp L89
 06CE           L88:
 06CE                   .dbline 465
 06CE 80E2              ldi R24,32
 06D0 80930000          sts _uip_flags,R24
 06D4                   .dbline 466
 06D4           L89:
 06D4                   .dbline -2
 06D4           L86:
 06D4 2496              adiw R28,4
 06D6 0E940000          xcall pop_gset4x
 06DA                   .dbline 0 ; func end
 06DA 0895              ret
 06DC                   .dbsym l fsfile 0 S[fs_file]
 06DC                   .dbsym r i 12 c
 06DC                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\hexok项目\AVRNET项目\AVRNET光盘\AVRuIP\httpd.c
 0000           _hs::
 0000                   .blkb 2
 0002                   .dbstruct 0 7 httpd_state
 0002                   .dbfield 0 state c
 0002                   .dbfield 1 count s
 0002                   .dbfield 3 dataptr pc
 0002                   .dbfield 5 script pc
 0002                   .dbend
 0002                   .dbsym e hs _hs pS[httpd_state]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -