📄 httpserv.lis
字号:
0204 9B83 std y+3,R25
0206 AC83 std y+4,R26
0208 BD83 std y+5,R27
020A 20900000 lds R2,_html_mt
020E 30900100 lds R3,_html_mt+1
0212 3982 std y+1,R3
0214 2882 std y+0,R2
0216 9601 movw R18,R12
0218 8501 movw R16,R10
021A 0E940000 xcall _NutHttpSendHeaderBottom
021E .dbline 377
021E ;
021E ; /* Send HTML header. */
021E ; fputs_P(head, stream);
021E 9501 movw R18,R10
0220 00E0 ldi R16,<L46
0222 10E0 ldi R17,>L46
0224 0E940000 xcall _fputs_P
0228 .dbline 378
0228 ; for (tdp = nutThreadList; tdp; tdp = tdp->td_next) {
0228 40910000 lds R20,_nutThreadList
022C 50910100 lds R21,_nutThreadList+1
0230 50C0 xjmp L57
0232 L54:
0232 .dbline 378
0232 .dbline 379
0232 ; fprintf_P(stream, tfmt, (uptr_t) tdp, tdp->td_name, tdp->td_priority,
0232 8FEE ldi R24,239
0234 9EEB ldi R25,190
0236 ADEA ldi R26,173
0238 BEED ldi R27,222
023A FA01 movw R30,R20
023C 7396 adiw R30,19
023E AF93 push R26
0240 BF93 push R27
0242 A081 ldd R26,z+0
0244 B181 ldd R27,z+1
0246 FD01 movw R30,R26
0248 BF91 pop R27
024A AF91 pop R26
024C 2080 ldd R2,z+0
024E 3180 ldd R3,z+1
0250 4280 ldd R4,z+2
0252 5380 ldd R5,z+3
0254 2816 cp R2,R24
0256 3906 cpc R3,R25
0258 4A06 cpc R4,R26
025A 5B06 cpc R5,R27
025C 19F0 breq L60
025E X11:
025E 60E0 ldi R22,<L58
0260 70E0 ldi R23,>L58
0262 02C0 xjmp L61
0264 L60:
0264 60E0 ldi R22,<L59
0266 70E0 ldi R23,>L59
0268 L61:
0268 798B std y+17,R23
026A 688B std y+16,R22
026C FA01 movw R30,R20
026E 6088 ldd R6,z+16
0270 7188 ldd R7,z+17
0272 2388 ldd R2,z+19
0274 3488 ldd R3,z+20
0276 2301 movw R4,R6
0278 4218 sub R4,R2
027A 5308 sbc R5,R3
027C 5F86 std y+15,R5
027E 4E86 std y+14,R4
0280 7D86 std y+13,R7
0282 6C86 std y+12,R6
0284 2588 ldd R2,z+21
0286 3688 ldd R3,z+22
0288 3B86 std y+11,R3
028A 2A86 std y+10,R2
028C 2788 ldd R2,z+23
028E 308C ldd R3,z+24
0290 3986 std y+9,R3
0292 2886 std y+8,R2
0294 80E0 ldi R24,<L49
0296 90E0 ldi R25,>L49
0298 E785 ldd R30,z+15
029A FF27 clr R31
029C EE0F lsl R30
029E FF1F rol R31
02A0 E80F add R30,R24
02A2 F91F adc R31,R25
02A4 2080 ldd R2,z+0
02A6 3180 ldd R3,z+1
02A8 3F82 std y+7,R3
02AA 2E82 std y+6,R2
02AC FA01 movw R30,R20
02AE 2288 ldd R2,z+18
02B0 3324 clr R3
02B2 3D82 std y+5,R3
02B4 2C82 std y+4,R2
02B6 CF01 movw R24,R30
02B8 0696 adiw R24,6
02BA 9B83 std y+3,R25
02BC 8A83 std y+2,R24
02BE 5983 std y+1,R21
02C0 4883 std y+0,R20
02C2 20E0 ldi R18,<L47
02C4 30E0 ldi R19,>L47
02C6 8501 movw R16,R10
02C8 0E940000 xcall _fprintf_P
02CC .dbline 383
02CC ; thread_states[tdp->td_state], (uptr_t) tdp->td_queue, (uptr_t) tdp->td_timer,
02CC ; (uptr_t) tdp->td_sp, (uptr_t) tdp->td_sp - (uptr_t) tdp->td_memory,
02CC ; *((u_long *) tdp->td_memory) != DEADBEEF ? "Corr" : "OK");
02CC ; }
02CC L55:
02CC .dbline 378
02CC FA01 movw R30,R20
02CE 4081 ldd R20,z+0
02D0 5181 ldd R21,z+1
02D2 L57:
02D2 .dbline 378
02D2 4030 cpi R20,0
02D4 4507 cpc R20,R21
02D6 09F0 breq X13
02D8 ACCF xjmp L54
02DA X13:
02DA X12:
02DA .dbline 384
02DA ; fputs_P(foot, stream);
02DA 9501 movw R18,R10
02DC 00E0 ldi R16,<L48
02DE 10E0 ldi R17,>L48
02E0 0E940000 xcall _fputs_P
02E4 .dbline 385
02E4 ; fflush(stream);
02E4 8501 movw R16,R10
02E6 0E940000 xcall _fflush
02EA .dbline 387
02EA ;
02EA ; return 0;
02EA 0027 clr R16
02EC 1127 clr R17
02EE .dbline -2
02EE L45:
02EE .dbline 0 ; func end
02EE 6296 adiw R28,18
02F0 0C940000 xjmp pop_xgsetF03C
02F4 .dbsym r tdp 20 pS[_NUTTHREADINFO]
02F4 .dbsym r req 12 pS[_REQUEST]
02F4 .dbsym r stream 10 pS[__iobuf]
02F4 .dbend
.area lit(rom, con, rel)
0284 L63:
0284 3C48544D4C3E3C484541443E3C544954 .byte 60,'H,'T,'M,'L,62,60,'H,'E,'A,'D,62,60,'T,'I,'T
0294 4C453E54696D6572733C2F5449544C45 .byte 'L,'E,62,'T,'i,'m,'e,'r,'s,60,47,'T,'I,'T,'L,'E
02A4 3E3C2F484541443E3C424F44593E3C48 .byte 62,60,47,'H,'E,'A,'D,62,60,'B,'O,'D,'Y,62,60,'H
02B4 313E54696D6572733C2F48313E0D0A00 .byte 49,62,'T,'i,'m,'e,'r,'s,60,47,'H,49,62,13,10,0
02C4 L64:
02C4 3C5441424C4520424F524445523E3C54 .byte 60,'T,'A,'B,'L,'E,32,'B,'O,'R,'D,'E,'R,62,60,'T
02D4 523E3C54483E48616E646C653C2F5448 .byte 'R,62,60,'T,'H,62,'H,'a,'n,'d,'l,'e,60,47,'T,'H
02E4 3E3C54483E436F756E74646F776E3C2F .byte 62,60,'T,'H,62,'C,'o,'u,'n,'t,'d,'o,'w,'n,60,47
02F4 54483E3C54483E5469636B2052656C6F .byte 'T,'H,62,60,'T,'H,62,'T,'i,'c,'k,32,'R,'e,'l,'o
0304 61643C2F54483E3C54483E43616C6C62 .byte 'a,'d,60,47,'T,'H,62,60,'T,'H,62,'C,'a,'l,'l,'b
0314 61636B3C42523E416464726573733C2F .byte 'a,'c,'k,60,'B,'R,62,'A,'d,'d,'r,'e,'s,'s,60,47
0324 54483E3C54483E43616C6C6261636B3C .byte 'T,'H,62,60,'T,'H,62,'C,'a,'l,'l,'b,'a,'c,'k,60
0334 42523E417267756D656E743C2F54483E .byte 'B,'R,62,'A,'r,'g,'u,'m,'e,'n,'t,60,47,'T,'H,62
0344 3C2F54523E0D0A00 .byte 60,47,'T,'R,62,13,10,0
034C L65:
034C 3C54523E3C54443E253034583C2F5444 .byte 60,'T,'R,62,60,'T,'D,62,37,48,52,'X,60,47,'T,'D
035C 3E3C54443E256C753C2F54443E3C5444 .byte 62,60,'T,'D,62,37,'l,'u,60,47,'T,'D,62,60,'T,'D
036C 3E256C753C2F54443E3C54443E253034 .byte 62,37,'l,'u,60,47,'T,'D,62,60,'T,'D,62,37,48,52
037C 583C2F54443E3C54443E253034583C2F .byte 'X,60,47,'T,'D,62,60,'T,'D,62,37,48,52,'X,60,47
038C 54443E3C2F54523E0D0A00 .byte 'T,'D,62,60,47,'T,'R,62,13,10,0
0397 L66:
0397 3C2F5441424C453E3C2F424F44593E3C .byte 60,47,'T,'A,'B,'L,'E,62,60,47,'B,'O,'D,'Y,62,60
03A7 2F48544D4C3E00 .byte 47,'H,'T,'M,'L,62,0
.area text(rom, con, rel)
02F4 .dbfile C:\ethernut-4.9.7\nutapp_13h\httpd\httpserv.c
02F4 .dbfunc s ShowTimers _ShowTimers fI
02F4 .dbstruct 0 16 _NUTTIMERINFO
02F4 .dbfield 0 tn_next pS[_NUTTIMERINFO]
02F4 .dbfield 2 tn_prev pS[_NUTTIMERINFO]
02F4 .dbfield 4 tn_ticks l
02F4 .dbfield 8 tn_ticks_left l
02F4 .dbfield 12 tn_callback pfV
02F4 .dbfield 14 tn_arg pV
02F4 .dbend
02F4 .dbsym s foot L66 A[23:23]kc
02F4 .dbsym s tfmt L65 A[75:75]kc
02F4 .dbsym s thead L64 A[136:136]kc
02F4 .dbsym s head L63 A[64:64]kc
02F4 ; ticks_left -> y+14
02F4 ; tnp -> R12,R13
02F4 ; req -> R12,R13
02F4 ; stream -> R10,R11
.even
02F4 _ShowTimers:
02F4 0E940000 xcall push_xgsetF03C
02F8 6901 movw R12,R18
02FA 5801 movw R10,R16
02FC 6297 sbiw R28,18
02FE .dbline -1
02FE .dbline 398
02FE ; }
02FE ;
02FE ; /*
02FE ; * CGI Sample: Show list of timers.
02FE ; *
02FE ; * This routine must have been registered by NutRegisterCgi() and is
02FE ; * automatically called by NutHttpProcessRequest() when the client
02FE ; * request the URL 'cgi-bin/timers.cgi'.
02FE ; */
02FE ; static int ShowTimers(FILE * stream, REQUEST * req)
02FE ; {
02FE .dbline 411
02FE ; static prog_char head[] = "<HTML><HEAD><TITLE>Timers</TITLE></HEAD><BODY><H1>Timers</H1>\r\n";
02FE ; static prog_char thead[] =
02FE ; "<TABLE BORDER><TR><TH>Handle</TH><TH>Countdown</TH><TH>Tick Reload</TH><TH>Callback<BR>Address</TH><TH>Callback<BR>Argument</TH></TR>\r\n";
02FE ; #if defined(__AVR__)
02FE ; static prog_char tfmt[] = "<TR><TD>%04X</TD><TD>%lu</TD><TD>%lu</TD><TD>%04X</TD><TD>%04X</TD></TR>\r\n";
02FE ; #else
02FE ; static prog_char tfmt[] = "<TR><TD>%08lX</TD><TD>%lu</TD><TD>%lu</TD><TD>%08lX</TD><TD>%08lX</TD></TR>\r\n";
02FE ; #endif
02FE ; static prog_char foot[] = "</TABLE></BODY></HTML>";
02FE ; NUTTIMERINFO *tnp;
02FE ; u_long ticks_left;
02FE ;
02FE ; NutHttpSendHeaderTop(stream, req, 200, "Ok");
02FE 80E0 ldi R24,<L22
0300 90E0 ldi R25,>L22
0302 9B83 std y+3,R25
0304 8A83 std y+2,R24
0306 88EC ldi R24,200
0308 90E0 ldi R25,0
030A 9983 std y+1,R25
030C 8883 std y+0,R24
030E 9601 movw R18,R12
0310 8501 movw R16,R10
0312 0E940000 xcall _NutHttpSendHeaderTop
0316 .dbline 412
0316 ; NutHttpSendHeaderBottom(stream, req, html_mt, -1);
0316 4FEF ldi R20,255
0318 5FEF ldi R21,255
031A 6FEF ldi R22,255
031C 7FEF ldi R23,255
031E 4A83 std y+2,R20
0320 5B83 std y+3,R21
0322 6C83 std y+4,R22
0324 7D83 std y+5,R23
0326 20900000 lds R2,_html_mt
032A 30900100 lds R3,_html_mt+1
032E 3982 std y+1,R3
0330 2882 std y+0,R2
0332 9601 movw R18,R12
0334 8501 movw R16,R10
0336 0E940000 xcall _NutHttpSendHeaderBottom
033A .dbline 415
033A ;
033A ; /* Send HTML header. */
033A ; fputs_P(head, stream);
033A 9501 movw R18,R10
033C 00E0 ldi R16,<L63
033E 10E0 ldi R17,>L63
0340 0E940000 xcall _fputs_P
0344 .dbline 416
0344 ; if ((tnp = nutTimerList) != 0) {
0344 20900000 lds R2,_nutTimerList
0348 30900100 lds R3,_nutTimerList+1
034C 6101 movw R12,R2
034E CC20 tst R12
0350 19F4 brne X14
0352 DD20 tst R13
0354 09F4 brne X16
0356 4AC0 xjmp L67
0358 X16:
0358 X14:
0358 .dbline 416
0358 .dbline 417
0358 ; fputs_P(thead, stream);
0358 9501 movw R18,R10
035A 00E0 ldi R16,<L64
035C 10E0 ldi R17,>L64
035E 0E940000 xcall _fputs_P
0362 .dbline 418
0362 ; ticks_left = 0;
0362 40E0 ldi R20,0
0364 50E0 ldi R21,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -