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

📄 telnetd.lst

📁 移植uip-1.0到Atmega32 1)把 uip-1.0 的所有文件加入到工程
💻 LST
📖 第 1 页 / 共 2 页
字号:
   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 + -