📄 httpserv.lis
字号:
00F0 8101 movw R16,R2
00F2 0E940000 xcall mod16s
00F6 1D83 std y+5,R17
00F8 0C83 std y+4,R16
00FA 2AE0 ldi R18,10
00FC 30E0 ldi R19,0
00FE 8101 movw R16,R2
0100 0E940000 xcall div16s
0104 1B83 std y+3,R17
0106 0A83 std y+2,R16
0108 7983 std y+1,R23
010A 6883 std y+0,R22
010C 20E0 ldi R18,<L15
010E 30E0 ldi R19,>L15
0110 8501 movw R16,R10
0112 0E940000 xcall _fprintf_P
0116 .dbline 330
0116 ; if (req->req_url)
0116 FA01 movw R30,R20
0118 2084 ldd R2,z+8
011A 3184 ldd R3,z+9
011C 2220 tst R2
011E 11F4 brne X5
0120 3320 tst R3
0122 39F0 breq L33
0124 X5:
0124 .dbline 331
0124 ; fprintf_P(stream, url_fmt, req->req_url);
0124 3982 std y+1,R3
0126 2882 std y+0,R2
0128 20E0 ldi R18,<L16
012A 30E0 ldi R19,>L16
012C 8501 movw R16,R10
012E 0E940000 xcall _fprintf_P
0132 L33:
0132 .dbline 332
0132 ; if (req->req_query)
0132 FA01 movw R30,R20
0134 2284 ldd R2,z+10
0136 3384 ldd R3,z+11
0138 2220 tst R2
013A 11F4 brne X6
013C 3320 tst R3
013E 39F0 breq L35
0140 X6:
0140 .dbline 333
0140 ; fprintf_P(stream, query_fmt, req->req_query);
0140 3982 std y+1,R3
0142 2882 std y+0,R2
0144 20E0 ldi R18,<L17
0146 30E0 ldi R19,>L17
0148 8501 movw R16,R10
014A 0E940000 xcall _fprintf_P
014E L35:
014E .dbline 334
014E ; if (req->req_type)
014E FA01 movw R30,R20
0150 2484 ldd R2,z+12
0152 3584 ldd R3,z+13
0154 2220 tst R2
0156 11F4 brne X7
0158 3320 tst R3
015A 39F0 breq L37
015C X7:
015C .dbline 335
015C ; fprintf_P(stream, type_fmt, req->req_type);
015C 3982 std y+1,R3
015E 2882 std y+0,R2
0160 20E0 ldi R18,<L18
0162 30E0 ldi R19,>L18
0164 8501 movw R16,R10
0166 0E940000 xcall _fprintf_P
016A L37:
016A .dbline 336
016A ; if (req->req_cookie)
016A FA01 movw R30,R20
016C 2684 ldd R2,z+14
016E 3784 ldd R3,z+15
0170 2220 tst R2
0172 11F4 brne X8
0174 3320 tst R3
0176 39F0 breq L39
0178 X8:
0178 .dbline 337
0178 ; fprintf_P(stream, cookie_fmt, req->req_cookie);
0178 3982 std y+1,R3
017A 2882 std y+0,R2
017C 20E0 ldi R18,<L19
017E 30E0 ldi R19,>L19
0180 8501 movw R16,R10
0182 0E940000 xcall _fprintf_P
0186 L39:
0186 .dbline 338
0186 ; if (req->req_auth)
0186 FA01 movw R30,R20
0188 2088 ldd R2,z+16
018A 3188 ldd R3,z+17
018C 2220 tst R2
018E 11F4 brne X9
0190 3320 tst R3
0192 39F0 breq L41
0194 X9:
0194 .dbline 339
0194 ; fprintf_P(stream, auth_fmt, req->req_auth);
0194 3982 std y+1,R3
0196 2882 std y+0,R2
0198 20E0 ldi R18,<L20
019A 30E0 ldi R19,>L20
019C 8501 movw R16,R10
019E 0E940000 xcall _fprintf_P
01A2 L41:
01A2 .dbline 340
01A2 ; if (req->req_agent)
01A2 FA01 movw R30,R20
01A4 2288 ldd R2,z+18
01A6 3388 ldd R3,z+19
01A8 2220 tst R2
01AA 11F4 brne X10
01AC 3320 tst R3
01AE 39F0 breq L43
01B0 X10:
01B0 .dbline 341
01B0 ; fprintf_P(stream, agent_fmt, req->req_agent);
01B0 3982 std y+1,R3
01B2 2882 std y+0,R2
01B4 20E0 ldi R18,<L21
01B6 30E0 ldi R19,>L21
01B8 8501 movw R16,R10
01BA 0E940000 xcall _fprintf_P
01BE L43:
01BE .dbline 344
01BE ;
01BE ; /* Send HTML footer and flush output buffer. */
01BE ; fputs_P(foot, stream);
01BE 9501 movw R18,R10
01C0 00E0 ldi R16,<L14
01C2 10E0 ldi R17,>L14
01C4 0E940000 xcall _fputs_P
01C8 .dbline 345
01C8 ; fflush(stream);
01C8 8501 movw R16,R10
01CA 0E940000 xcall _fflush
01CE .dbline 347
01CE ;
01CE ; return 0;
01CE 0027 clr R16
01D0 1127 clr R17
01D2 .dbline -2
01D2 L12:
01D2 .dbline 0 ; func end
01D2 2A96 adiw R28,10
01D4 0C940000 xjmp pop_xgsetF00C
01D8 .dbsym r cp 22 pc
01D8 .dbsym r req 20 pS[_REQUEST]
01D8 .dbsym r stream 10 pS[__iobuf]
01D8 .dbend
.area lit(rom, con, rel)
010A L46:
010A 3C48544D4C3E3C484541443E3C544954 .byte 60,'H,'T,'M,'L,62,60,'H,'E,'A,'D,62,60,'T,'I,'T
011A 4C453E546872656164733C2F5449544C .byte 'L,'E,62,'T,'h,'r,'e,'a,'d,'s,60,47,'T,'I,'T,'L
012A 453E3C2F484541443E3C424F44593E3C .byte 'E,62,60,47,'H,'E,'A,'D,62,60,'B,'O,'D,'Y,62,60
013A 48313E546872656164733C2F48313E0D .byte 'H,49,62,'T,'h,'r,'e,'a,'d,'s,60,47,'H,49,62,13
014A 0A3C5441424C4520424F524445523E3C .byte 10,60,'T,'A,'B,'L,'E,32,'B,'O,'R,'D,'E,'R,62,60
015A 54523E3C54483E48616E646C653C2F54 .byte 'T,'R,62,60,'T,'H,62,'H,'a,'n,'d,'l,'e,60,47,'T
016A 483E3C54483E4E616D653C2F54483E3C .byte 'H,62,60,'T,'H,62,'N,'a,'m,'e,60,47,'T,'H,62,60
017A 54483E5072696F726974793C2F54483E .byte 'T,'H,62,'P,'r,'i,'o,'r,'i,'t,'y,60,47,'T,'H,62
018A 3C54483E5374617475733C2F54483E3C .byte 60,'T,'H,62,'S,'t,'a,'t,'u,'s,60,47,'T,'H,62,60
019A 54483E4576656E743C42523E51756575 .byte 'T,'H,62,'E,'v,'e,'n,'t,60,'B,'R,62,'Q,'u,'e,'u
01AA 653C2F54483E3C54483E54696D65723C .byte 'e,60,47,'T,'H,62,60,'T,'H,62,'T,'i,'m,'e,'r,60
01BA 2F54483E3C54483E537461636B2D3C42 .byte 47,'T,'H,62,60,'T,'H,62,'S,'t,'a,'c,'k,45,60,'B
01CA 523E706F696E7465723C2F54483E3C54 .byte 'R,62,'p,'o,'i,'n,'t,'e,'r,60,47,'T,'H,62,60,'T
01DA 483E467265653C42523E537461636B3C .byte 'H,62,'F,'r,'e,'e,60,'B,'R,62,'S,'t,'a,'c,'k,60
01EA 2F54483E3C2F54523E0D0A00 .byte 47,'T,'H,62,60,47,'T,'R,62,13,10,0
01F6 L47:
01F6 3C54523E3C54443E253034583C2F5444 .byte 60,'T,'R,62,60,'T,'D,62,37,48,52,'X,60,47,'T,'D
0206 3E3C54443E25733C2F54443E3C54443E .byte 62,60,'T,'D,62,37,'s,60,47,'T,'D,62,60,'T,'D,62
0216 25753C2F54443E3C54443E25733C2F54 .byte 37,'u,60,47,'T,'D,62,60,'T,'D,62,37,'s,60,47,'T
0226 443E3C54443E253034583C2F54443E3C .byte 'D,62,60,'T,'D,62,37,48,52,'X,60,47,'T,'D,62,60
0236 54443E253034583C2F54443E3C54443E .byte 'T,'D,62,37,48,52,'X,60,47,'T,'D,62,60,'T,'D,62
0246 253034583C2F54443E3C54443E25753C .byte 37,48,52,'X,60,47,'T,'D,62,60,'T,'D,62,37,'u,60
0256 2F54443E3C54443E25733C2F54443E3C .byte 47,'T,'D,62,60,'T,'D,62,37,'s,60,47,'T,'D,62,60
0266 2F54523E0D0A00 .byte 47,'T,'R,62,13,10,0
026D L48:
026D 3C2F5441424C453E3C2F424F44593E3C .byte 60,47,'T,'A,'B,'L,'E,62,60,47,'B,'O,'D,'Y,62,60
027D 2F48544D4C3E00 .byte 47,'H,'T,'M,'L,62,0
.area data(ram, con, rel)
0002 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
0002 L49:
0002 .blkw 1
.area idata
0002 EB02 .word L50
.area data(ram, con, rel)
0004 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
0004 .blkw 1
.area idata
0004 CC02 .word L51
.area data(ram, con, rel)
0006 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
0006 .blkw 1
.area idata
0006 AD02 .word L52
.area data(ram, con, rel)
0008 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
0008 .blkw 1
.area idata
0008 A902 .word L53
.area data(ram, con, rel)
000A .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
.area text(rom, con, rel)
01D8 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
01D8 .dbfunc s ShowThreads _ShowThreads fI
01D8 .dbstruct 0 25 _NUTTHREADINFO
01D8 .dbfield 0 td_next pS[_NUTTHREADINFO]
01D8 .dbfield 2 td_qnxt pS[_NUTTHREADINFO]
01D8 .dbfield 4 td_qpec i
01D8 .dbfield 6 td_name A[9:9]c
01D8 .dbfield 15 td_state c
01D8 .dbfield 16 td_sp i
01D8 .dbfield 18 td_priority c
01D8 .dbfield 19 td_memory pc
01D8 .dbfield 21 td_timer pV
01D8 .dbfield 23 td_queue pV
01D8 .dbend
01D8 .dbsym s thread_states L49 A[8:4]pc
01D8 .dbsym s foot L48 A[23:23]kc
01D8 .dbsym s tfmt L47 A[119:119]kc
01D8 .dbsym s head L46 A[236:236]kc
01D8 ; tdp -> R20,R21
01D8 ; req -> R12,R13
01D8 ; stream -> R10,R11
.even
01D8 _ShowThreads:
01D8 0E940000 xcall push_xgsetF03C
01DC 6901 movw R12,R18
01DE 5801 movw R10,R16
01E0 6297 sbiw R28,18
01E2 .dbline -1
01E2 .dbline 358
01E2 ; }
01E2 ;
01E2 ; /*
01E2 ; * CGI Sample: Show list of threads.
01E2 ; *
01E2 ; * This routine must have been registered by NutRegisterCgi() and is
01E2 ; * automatically called by NutHttpProcessRequest() when the client
01E2 ; * request the URL 'cgi-bin/threads.cgi'.
01E2 ; */
01E2 ; static int ShowThreads(FILE * stream, REQUEST * req)
01E2 ; {
01E2 .dbline 370
01E2 ; static prog_char head[] = "<HTML><HEAD><TITLE>Threads</TITLE></HEAD><BODY><H1>Threads</H1>\r\n"
01E2 ; "<TABLE BORDER><TR><TH>Handle</TH><TH>Name</TH><TH>Priority</TH><TH>Status</TH><TH>Event<BR>Queue</TH><TH>Timer</TH><TH>Stack-<BR>pointer</TH><TH>Free<BR>Stack</TH></TR>\r\n";
01E2 ; #if defined(__AVR__)
01E2 ; static prog_char tfmt[] =
01E2 ; "<TR><TD>%04X</TD><TD>%s</TD><TD>%u</TD><TD>%s</TD><TD>%04X</TD><TD>%04X</TD><TD>%04X</TD><TD>%u</TD><TD>%s</TD></TR>\r\n";
01E2 ; #else
01E2 ; static prog_char tfmt[] =
01E2 ; "<TR><TD>%08lX</TD><TD>%s</TD><TD>%u</TD><TD>%s</TD><TD>%08lX</TD><TD>%08lX</TD><TD>%08lX</TD><TD>%lu</TD><TD>%s</TD></TR>\r\n";
01E2 ; #endif
01E2 ; static prog_char foot[] = "</TABLE></BODY></HTML>";
01E2 ; static char *thread_states[] = { "TRM", "<FONT COLOR=#CC0000>RUN</FONT>", "<FONT COLOR=#339966>RDY</FONT>", "SLP" };
01E2 ; NUTTHREADINFO *tdp = nutThreadList;
01E2 .dbline 373
01E2 ;
01E2 ; /* Send HTTP response. */
01E2 ; NutHttpSendHeaderTop(stream, req, 200, "Ok");
01E2 80E0 ldi R24,<L22
01E4 90E0 ldi R25,>L22
01E6 9B83 std y+3,R25
01E8 8A83 std y+2,R24
01EA 88EC ldi R24,200
01EC 90E0 ldi R25,0
01EE 9983 std y+1,R25
01F0 8883 std y+0,R24
01F2 9601 movw R18,R12
01F4 8501 movw R16,R10
01F6 0E940000 xcall _NutHttpSendHeaderTop
01FA .dbline 374
01FA ; NutHttpSendHeaderBottom(stream, req, html_mt, -1);
01FA 8FEF ldi R24,255
01FC 9FEF ldi R25,255
01FE AFEF ldi R26,255
0200 BFEF ldi R27,255
0202 8A83 std y+2,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -