📄 telnetd.lst
字号:
1 .file "telnetd.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .data
21 linemem:
22 0000 2800 .word 40
23 0002 0100 .word 1
24 0004 0000 .word linemem_memb_count
25 0006 0000 .word linemem_memb_mem
26 .text
28 alloc_line:
29 .LFB2:
30 .LM1:
31 /* prologue: frame size=0 */
32 /* prologue end (size=0) */
33 .LM2:
34 0000 80E0 ldi r24,lo8(linemem)
35 0002 90E0 ldi r25,hi8(linemem)
36 0004 0E94 0000 call memb_alloc
37 /* epilogue: frame size=0 */
38 0008 0895 ret
39 /* epilogue end (size=1) */
40 /* function alloc_line size 5 (4) */
41 .LFE2:
44 dealloc_line:
45 .LFB3:
46 .LM3:
47 /* prologue: frame size=0 */
48 /* prologue end (size=0) */
49 .LM4:
50 000a BC01 movw r22,r24
51 000c 80E0 ldi r24,lo8(linemem)
52 000e 90E0 ldi r25,hi8(linemem)
53 0010 0E94 0000 call memb_free
54 /* epilogue: frame size=0 */
55 0014 0895 ret
56 /* epilogue end (size=1) */
57 /* function dealloc_line size 6 (5) */
58 .LFE3:
60 .global shell_quit
62 shell_quit:
63 .LFB4:
64 .LM5:
65 /* prologue: frame size=0 */
66 /* prologue end (size=0) */
67 .LM6:
68 0016 86E0 ldi r24,lo8(6)
69 0018 8093 0000 sts s+44,r24
70 /* epilogue: frame size=0 */
71 001c 0895 ret
72 /* epilogue end (size=1) */
73 /* function shell_quit size 4 (3) */
74 .LFE4:
76 .lcomm i.3,2
78 sendline:
79 .LFB5:
80 .LM7:
81 /* prologue: frame size=0 */
82 /* prologue end (size=0) */
83 001e AC01 movw r20,r24
84 .LM8:
85 0020 1092 0000 sts (i.3)+1,__zero_reg__
86 0024 1092 0000 sts i.3,__zero_reg__
87 0028 20E0 ldi r18,lo8(0)
88 002a 30E0 ldi r19,hi8(0)
89 .L9:
90 .LM9:
91 002c F901 movw r30,r18
92 002e E20F add r30,r18
93 0030 F31F adc r31,r19
94 0032 E050 subi r30,lo8(-(s))
95 0034 F040 sbci r31,hi8(-(s))
96 0036 8081 ld r24,Z
97 0038 9181 ldd r25,Z+1
98 003a 892B or r24,r25
99 003c 19F4 brne .L7
100 .LM10:
101 003e 5183 std Z+1,r21
102 0040 4083 st Z,r20
103 .LM11:
104 0042 03C0 rjmp .L12
105 .L7:
106 .LM12:
107 0044 2F5F subi r18,lo8(-(1))
108 0046 3F4F sbci r19,hi8(-(1))
109 0048 89F3 breq .L9
110 .L12:
111 004a 3093 0000 sts (i.3)+1,r19
112 004e 2093 0000 sts i.3,r18
113 .LM13:
114 0052 2130 cpi r18,1
115 0054 3105 cpc r19,__zero_reg__
116 0056 19F4 brne .L4
117 .LM14:
118 0058 CA01 movw r24,r20
119 005a 0E94 0000 call dealloc_line
120 .L4:
121 005e 0895 ret
122 /* epilogue: frame size=0 */
123 /* epilogue: noreturn */
124 /* epilogue end (size=0) */
125 /* function sendline size 35 (35) */
126 .LFE5:
128 .global shell_prompt
130 shell_prompt:
131 .LFB6:
132 .LM15:
133 /* prologue: frame size=0 */
134 0060 0F93 push r16
135 0062 1F93 push r17
136 0064 CF93 push r28
137 0066 DF93 push r29
138 /* prologue end (size=4) */
139 0068 8C01 movw r16,r24
140 .LM16:
141 006a 0E94 0000 call alloc_line
142 006e EC01 movw r28,r24
143 .LM17:
144 0070 0097 sbiw r24,0
145 0072 41F0 breq .L13
146 .LM18:
147 0074 48E2 ldi r20,lo8(40)
148 0076 50E0 ldi r21,hi8(40)
149 0078 B801 movw r22,r16
150 007a 0E94 0000 call strncpy
151 .LM19:
152 007e CE01 movw r24,r28
153 0080 0E94 0000 call sendline
154 .L13:
155 /* epilogue: frame size=0 */
156 0084 DF91 pop r29
157 0086 CF91 pop r28
158 0088 1F91 pop r17
159 008a 0F91 pop r16
160 008c 0895 ret
161 /* epilogue end (size=5) */
162 /* function shell_prompt size 23 (14) */
163 .LFE6:
165 .lcomm len.8,2
166 .global shell_output
168 shell_output:
169 .LFB7:
170 .LM20:
171 /* prologue: frame size=0 */
172 008e EF92 push r14
173 0090 FF92 push r15
174 0092 0F93 push r16
175 0094 1F93 push r17
176 0096 CF93 push r28
177 0098 DF93 push r29
178 /* prologue end (size=6) */
179 009a 8C01 movw r16,r24
180 009c 7B01 movw r14,r22
181 .LM21:
182 009e 0E94 0000 call alloc_line
183 00a2 EC01 movw r28,r24
184 .LM22:
185 00a4 0097 sbiw r24,0
186 00a6 09F4 brne .+2
187 00a8 46C0 rjmp .L15
188 .LM23:
189 00aa F801 movw r30,r16
190 00ac 0190 ld __tmp_reg__,Z+
191 00ae 0020 tst __tmp_reg__
192 00b0 E9F7 brne .-6
193 00b2 3197 sbiw r30,1
194 00b4 E01B sub r30,r16
195 00b6 F10B sbc r31,r17
196 00b8 F093 0000 sts (len.8)+1,r31
197 00bc E093 0000 sts len.8,r30
198 .LM24:
199 00c0 48E2 ldi r20,lo8(40)
200 00c2 50E0 ldi r21,hi8(40)
201 00c4 B801 movw r22,r16
202 00c6 0E94 0000 call strncpy
203 .LM25:
204 00ca 2091 0000 lds r18,len.8
205 00ce 3091 0000 lds r19,(len.8)+1
206 00d2 2832 cpi r18,40
207 00d4 3105 cpc r19,__zero_reg__
208 00d6 58F4 brsh .L17
209 .LM26:
210 00d8 88E2 ldi r24,lo8(40)
211 00da 90E0 ldi r25,hi8(40)
212 00dc 821B sub r24,r18
213 00de 930B sbc r25,r19
214 00e0 AC01 movw r20,r24
215 00e2 B701 movw r22,r14
216 00e4 CE01 movw r24,r28
217 00e6 820F add r24,r18
218 00e8 931F adc r25,r19
219 00ea 0E94 0000 call strncpy
220 .L17:
221 .LM27:
222 00ee FE01 movw r30,r28
223 00f0 0190 ld __tmp_reg__,Z+
224 00f2 0020 tst __tmp_reg__
225 00f4 E9F7 brne .-6
226 00f6 3197 sbiw r30,1
227 00f8 EC1B sub r30,r28
228 00fa FD0B sbc r31,r29
229 00fc F093 0000 sts (len.8)+1,r31
230 0100 E093 0000 sts len.8,r30
231 .LM28:
232 0104 E632 cpi r30,38
233 0106 F105 cpc r31,__zero_reg__
234 0108 98F4 brsh .L18
235 .LM29:
236 010a EC0F add r30,r28
237 010c FD1F adc r31,r29
238 010e 8DE0 ldi r24,lo8(13)
239 0110 8083 st Z,r24
240 .LM30:
241 0112 E091 0000 lds r30,len.8
242 0116 F091 0000 lds r31,(len.8)+1
243 011a EC0F add r30,r28
244 011c FD1F adc r31,r29
245 011e 8AE0 ldi r24,lo8(10)
246 0120 8183 std Z+1,r24
247 .LM31:
248 0122 E091 0000 lds r30,len.8
249 0126 F091 0000 lds r31,(len.8)+1
250 012a EC0F add r30,r28
251 012c FD1F adc r31,r29
252 012e 1282 std Z+2,__zero_reg__
253 .L18:
254 .LM32:
255 0130 CE01 movw r24,r28
256 0132 0E94 0000 call sendline
257 .L15:
258 /* epilogue: frame size=0 */
259 0136 DF91 pop r29
260 0138 CF91 pop r28
261 013a 1F91 pop r17
262 013c 0F91 pop r16
263 013e FF90 pop r15
264 0140 EF90 pop r14
265 0142 0895 ret
266 /* epilogue end (size=7) */
267 /* function shell_output size 91 (78) */
268 .LFE7:
270 .global telnetd_init
272 telnetd_init:
273 .LFB8:
274 .LM33:
275 /* prologue: frame size=0 */
276 /* prologue end (size=0) */
277 .LM34:
278 0144 80E0 ldi r24,lo8(5888)
279 0146 97E1 ldi r25,hi8(5888)
280 0148 0E94 0000 call uip_listen
281 .LM35:
282 014c 80E0 ldi r24,lo8(linemem)
283 014e 90E0 ldi r25,hi8(linemem)
284 0150 0E94 0000 call memb_init
285 .LM36:
286 0154 0E94 0000 call shell_init
287 /* epilogue: frame size=0 */
288 0158 0895 ret
289 /* epilogue end (size=1) */
290 /* function telnetd_init size 11 (10) */
291 .LFE8:
294 get_char:
295 .LFB12:
296 .LM37:
297 /* prologue: frame size=0 */
298 /* prologue end (size=0) */
299 .LM38:
300 015a 8D30 cpi r24,lo8(13)
301 015c B9F0 breq .L20
302 .LM39:
303 015e 9091 0000 lds r25,s+42
304 0162 E92F mov r30,r25
305 0164 FF27 clr r31
306 0166 E050 subi r30,lo8(-(s))
307 0168 F040 sbci r31,hi8(-(s))
308 016a 8283 std Z+2,r24
309 .LM40:
310 016c 8A30 cpi r24,lo8(10)
311 016e 11F0 breq .L23
312 0170 9732 cpi r25,lo8(39)
313 0172 49F4 brne .L22
314 .L23:
315 .LM41:
316 0174 9111 cpse r25,__zero_reg__
317 .LM42:
318 0176 1282 std Z+2,__zero_reg__
319 .L24:
320 .LM43:
321 0178 80E0 ldi r24,lo8(s+2)
322 017a 90E0 ldi r25,hi8(s+2)
323 017c 0E94 0000 call shell_input
324 .LM44:
325 0180 1092 0000 sts s+42,__zero_reg__
326 0184 0895 ret
327 .L22:
328 .LM45:
329 0186 9F5F subi r25,lo8(-(1))
330 0188 9093 0000 sts s+42,r25
331 .L20:
332 018c 0895 ret
333 /* epilogue: frame size=0 */
334 /* epilogue: noreturn */
335 /* epilogue end (size=0) */
336 /* function get_char size 27 (27) */
337 .LFE12:
340 sendopt:
341 .LFB13:
342 .LM46:
343 /* prologue: frame size=0 */
344 018e 1F93 push r17
345 0190 CF93 push r28
346 /* prologue end (size=2) */
347 0192 C82F mov r28,r24
348 0194 162F mov r17,r22
349 .LM47:
350 0196 0E94 0000 call alloc_line
351 019a FC01 movw r30,r24
352 .LM48:
353 019c 892B or r24,r25
354 019e 41F0 breq .L26
355 .LM49:
356 01a0 8FEF ldi r24,lo8(-1)
357 01a2 8083 st Z,r24
358 .LM50:
359 01a4 C183 std Z+1,r28
360 .LM51:
361 01a6 1283 std Z+2,r17
362 .LM52:
363 01a8 1382 std Z+3,__zero_reg__
364 .LM53:
365 01aa CF01 movw r24,r30
366 01ac 0E94 0000 call sendline
367 .L26:
368 /* epilogue: frame size=0 */
369 01b0 CF91 pop r28
370 01b2 1F91 pop r17
371 01b4 0895 ret
372 /* epilogue end (size=3) */
373 /* function sendopt size 20 (15) */
374 .LFE13:
376 .lcomm i.0,2
377 .lcomm i.1,2
378 .lcomm i.2,2
379 .lcomm bufptr.4,2
380 .lcomm lineptr.5,2
381 .lcomm buflen.6,2
382 .lcomm linelen.7,2
383 .global telnetd_appcall
385 telnetd_appcall:
386 .LFB15:
387 .LM54:
388 /* prologue: frame size=0 */
389 01b6 0F93 push r16
390 01b8 1F93 push r17
391 01ba CF93 push r28
392 01bc DF93 push r29
393 /* prologue end (size=4) */
394 .LM55:
395 01be 8091 0000 lds r24,uip_flags
396 01c2 86FF sbrs r24,6
397 01c4 18C0 rjmp .L29
398 .LM56:
399 01c6 1092 0000 sts (i.0)+1,__zero_reg__
400 01ca 1092 0000 sts i.0,__zero_reg__
401 01ce E0E0 ldi r30,lo8(s)
402 01d0 F0E0 ldi r31,hi8(s)
403 .L33:
404 .LM57:
405 01d2 1192 st Z+,__zero_reg__
406 01d4 1192 st Z+,__zero_reg__
407 .LM58:
408 01d6 80E0 ldi r24,hi8(s)
409 01d8 E030 cpi r30,lo8(s)
410 01da F807 cpc r31,r24
411 01dc D1F3 breq .L33
412 01de 81E0 ldi r24,lo8(1)
413 01e0 90E0 ldi r25,hi8(1)
414 01e2 9093 0000 sts (i.0)+1,r25
415 01e6 8093 0000 sts i.0,r24
416 .LM59:
417 01ea 1092 0000 sts s+42,__zero_reg__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -