📄 uartmain.lst
字号:
1ae: 4e c0 rjmp .+156 ; 0x24c <uart_getchar+0x150>
1b0: 88 31 cpi r24, 0x18 ; 24
1b2: 91 05 cpc r25, r1
1b4: 1c f4 brge .+6 ; 0x1bc <uart_getchar+0xc0>
1b6: 45 97 sbiw r24, 0x15 ; 21
1b8: 79 f1 breq .+94 ; 0x218 <uart_getchar+0x11c>
1ba: b3 cf rjmp .-154 ; 0x122 <uart_getchar+0x26>
1bc: 8f 37 cpi r24, 0x7F ; 127
1be: 91 05 cpc r25, r1
1c0: 21 f0 breq .+8 ; 0x1ca <uart_getchar+0xce>
1c2: af cf rjmp .-162 ; 0x122 <uart_getchar+0x26>
{
case 'c' & 0x1f:
return -1;
1c4: 8f ef ldi r24, 0xFF ; 255
1c6: 9f ef ldi r25, 0xFF ; 255
1c8: 6e c0 rjmp .+220 ; 0x2a6 <uart_getchar+0x1aa>
case '\b':
case '\x7f':
if (cp > b)
1ca: f0 e0 ldi r31, 0x00 ; 0
1cc: 06 3f cpi r16, 0xF6 ; 246
1ce: 1f 07 cpc r17, r31
1d0: 09 f0 breq .+2 ; 0x1d4 <uart_getchar+0xd8>
1d2: 08 f4 brcc .+2 ; 0x1d6 <uart_getchar+0xda>
1d4: a6 cf rjmp .-180 ; 0x122 <uart_getchar+0x26>
{
uart_putchar('\b', stream);
1d6: b7 01 movw r22, r14
1d8: 88 e0 ldi r24, 0x08 ; 8
1da: 0e 94 65 00 call 0xca <uart_putchar>
uart_putchar(' ', stream);
1de: b7 01 movw r22, r14
1e0: 80 e2 ldi r24, 0x20 ; 32
1e2: 0e 94 65 00 call 0xca <uart_putchar>
uart_putchar('\b', stream);
1e6: b7 01 movw r22, r14
1e8: 88 e0 ldi r24, 0x08 ; 8
1ea: 0e 94 65 00 call 0xca <uart_putchar>
cp--;
1ee: 01 50 subi r16, 0x01 ; 1
1f0: 10 40 sbci r17, 0x00 ; 0
}
break;
1f2: 97 cf rjmp .-210 ; 0x122 <uart_getchar+0x26>
case 'r' & 0x1f:
uart_putchar('\r', stream);
1f4: b7 01 movw r22, r14
1f6: 8d e0 ldi r24, 0x0D ; 13
1f8: 0e 94 65 00 call 0xca <uart_putchar>
for (cp2 = b; cp2 < cp; cp2++)
1fc: c6 ef ldi r28, 0xF6 ; 246
1fe: d0 e0 ldi r29, 0x00 ; 0
200: c0 16 cp r12, r16
202: d1 06 cpc r13, r17
204: 08 f0 brcs .+2 ; 0x208 <uart_getchar+0x10c>
206: 8d cf rjmp .-230 ; 0x122 <uart_getchar+0x26>
uart_putchar(*cp2, stream);
208: b7 01 movw r22, r14
20a: 89 91 ld r24, Y+
20c: 0e 94 65 00 call 0xca <uart_putchar>
210: c0 17 cp r28, r16
212: d1 07 cpc r29, r17
214: c8 f3 brcs .-14 ; 0x208 <uart_getchar+0x10c>
break;
216: 85 cf rjmp .-246 ; 0x122 <uart_getchar+0x26>
case 'u' & 0x1f:
while (cp > b)
{
uart_putchar('\b', stream);
uart_putchar(' ', stream);
uart_putchar('\b', stream);
cp--;
218: 80 e0 ldi r24, 0x00 ; 0
21a: 06 3f cpi r16, 0xF6 ; 246
21c: 18 07 cpc r17, r24
21e: 09 f0 breq .+2 ; 0x222 <uart_getchar+0x126>
220: 08 f4 brcc .+2 ; 0x224 <uart_getchar+0x128>
222: 7f cf rjmp .-258 ; 0x122 <uart_getchar+0x26>
224: b7 01 movw r22, r14
226: 88 e0 ldi r24, 0x08 ; 8
228: 0e 94 65 00 call 0xca <uart_putchar>
22c: b7 01 movw r22, r14
22e: 80 e2 ldi r24, 0x20 ; 32
230: 0e 94 65 00 call 0xca <uart_putchar>
234: b7 01 movw r22, r14
236: 88 e0 ldi r24, 0x08 ; 8
238: 0e 94 65 00 call 0xca <uart_putchar>
23c: 01 50 subi r16, 0x01 ; 1
23e: 10 40 sbci r17, 0x00 ; 0
240: e0 e0 ldi r30, 0x00 ; 0
242: 06 3f cpi r16, 0xF6 ; 246
244: 1e 07 cpc r17, r30
246: 09 f0 breq .+2 ; 0x24a <uart_getchar+0x14e>
248: 68 f7 brcc .-38 ; 0x224 <uart_getchar+0x128>
}
break;
24a: 6b cf rjmp .-298 ; 0x122 <uart_getchar+0x26>
case 'w' & 0x1f:
while (cp > b && cp[-1] != ' ')
{
uart_putchar('\b', stream);
uart_putchar(' ', stream);
uart_putchar('\b', stream);
cp--;
24c: f0 e0 ldi r31, 0x00 ; 0
24e: 06 3f cpi r16, 0xF6 ; 246
250: 1f 07 cpc r17, r31
252: 09 f0 breq .+2 ; 0x256 <uart_getchar+0x15a>
254: 08 f4 brcc .+2 ; 0x258 <uart_getchar+0x15c>
256: 65 cf rjmp .-310 ; 0x122 <uart_getchar+0x26>
258: f8 01 movw r30, r16
25a: 82 91 ld r24, -Z
25c: 8f 01 movw r16, r30
25e: 0f 5f subi r16, 0xFF ; 255
260: 1f 4f sbci r17, 0xFF ; 255
262: 80 32 cpi r24, 0x20 ; 32
264: 09 f4 brne .+2 ; 0x268 <uart_getchar+0x16c>
266: 5d cf rjmp .-326 ; 0x122 <uart_getchar+0x26>
268: b7 01 movw r22, r14
26a: 88 e0 ldi r24, 0x08 ; 8
26c: 0e 94 65 00 call 0xca <uart_putchar>
270: b7 01 movw r22, r14
272: 80 e2 ldi r24, 0x20 ; 32
274: 0e 94 65 00 call 0xca <uart_putchar>
278: b7 01 movw r22, r14
27a: 88 e0 ldi r24, 0x08 ; 8
27c: 0e 94 65 00 call 0xca <uart_putchar>
280: 01 50 subi r16, 0x01 ; 1
282: 10 40 sbci r17, 0x00 ; 0
284: e3 cf rjmp .-58 ; 0x24c <uart_getchar+0x150>
}
break;
}
}
c = *rxp++;
286: e0 91 46 01 lds r30, 0x0146
28a: f0 91 47 01 lds r31, 0x0147
28e: 81 91 ld r24, Z+
290: f0 93 47 01 sts 0x0147, r31
294: e0 93 46 01 sts 0x0146, r30
if (c == '\n')
298: 8a 30 cpi r24, 0x0A ; 10
29a: 21 f4 brne .+8 ; 0x2a4 <uart_getchar+0x1a8>
rxp = 0;
29c: 10 92 47 01 sts 0x0147, r1
2a0: 10 92 46 01 sts 0x0146, r1
return c;
2a4: 99 27 eor r25, r25
2a6: df 91 pop r29
2a8: cf 91 pop r28
2aa: 1f 91 pop r17
2ac: 0f 91 pop r16
2ae: ff 90 pop r15
2b0: ef 90 pop r14
2b2: df 90 pop r13
2b4: cf 90 pop r12
2b6: 08 95 ret
000002b8 <fputs>:
2b8: ef 92 push r14
2ba: ff 92 push r15
2bc: 0f 93 push r16
2be: 1f 93 push r17
2c0: cf 93 push r28
2c2: df 93 push r29
2c4: ec 01 movw r28, r24
2c6: 8b 01 movw r16, r22
2c8: ee 24 eor r14, r14
2ca: ff 24 eor r15, r15
2cc: fb 01 movw r30, r22
2ce: 83 81 ldd r24, Z+3 ; 0x03
2d0: 81 fd sbrc r24, 1
2d2: 03 c0 rjmp .+6 ; 0x2da <fputs+0x22>
2d4: 8f ef ldi r24, 0xFF ; 255
2d6: 9f ef ldi r25, 0xFF ; 255
2d8: 10 c0 rjmp .+32 ; 0x2fa <fputs+0x42>
2da: 89 91 ld r24, Y+
2dc: 88 23 and r24, r24
2de: 61 f0 breq .+24 ; 0x2f8 <fputs+0x40>
2e0: f8 01 movw r30, r16
2e2: 20 85 ldd r18, Z+8 ; 0x08
2e4: 31 85 ldd r19, Z+9 ; 0x09
2e6: b8 01 movw r22, r16
2e8: f9 01 movw r30, r18
2ea: 09 95 icall
2ec: 89 2b or r24, r25
2ee: a9 f3 breq .-22 ; 0x2da <fputs+0x22>
2f0: 8f ef ldi r24, 0xFF ; 255
2f2: e8 2e mov r14, r24
2f4: f8 2e mov r15, r24
2f6: f1 cf rjmp .-30 ; 0x2da <fputs+0x22>
2f8: c7 01 movw r24, r14
2fa: df 91 pop r29
2fc: cf 91 pop r28
2fe: 1f 91 pop r17
300: 0f 91 pop r16
302: ff 90 pop r15
304: ef 90 pop r14
306: 08 95 ret
00000308 <puts>:
308: 0f 93 push r16
30a: 1f 93 push r17
30c: cf 93 push r28
30e: df 93 push r29
310: ec 01 movw r28, r24
312: 00 e0 ldi r16, 0x00 ; 0
314: 10 e0 ldi r17, 0x00 ; 0
316: e0 91 4a 01 lds r30, 0x014A
31a: f0 91 4b 01 lds r31, 0x014B
31e: 83 81 ldd r24, Z+3 ; 0x03
320: 81 fd sbrc r24, 1
322: 03 c0 rjmp .+6 ; 0x32a <puts+0x22>
324: 8f ef ldi r24, 0xFF ; 255
326: 9f ef ldi r25, 0xFF ; 255
328: 20 c0 rjmp .+64 ; 0x36a <puts+0x62>
32a: 89 91 ld r24, Y+
32c: 88 23 and r24, r24
32e: 71 f0 breq .+28 ; 0x34c <puts+0x44>
330: e0 91 4a 01 lds r30, 0x014A
334: f0 91 4b 01 lds r31, 0x014B
338: 20 85 ldd r18, Z+8 ; 0x08
33a: 31 85 ldd r19, Z+9 ; 0x09
33c: bf 01 movw r22, r30
33e: f9 01 movw r30, r18
340: 09 95 icall
342: 89 2b or r24, r25
344: 91 f3 breq .-28 ; 0x32a <puts+0x22>
346: 0f ef ldi r16, 0xFF ; 255
348: 1f ef ldi r17, 0xFF ; 255
34a: ef cf rjmp .-34 ; 0x32a <puts+0x22>
34c: e0 91 4a 01 lds r30, 0x014A
350: f0 91 4b 01 lds r31, 0x014B
354: 20 85 ldd r18, Z+8 ; 0x08
356: 31 85 ldd r19, Z+9 ; 0x09
358: bf 01 movw r22, r30
35a: 8a e0 ldi r24, 0x0A ; 10
35c: f9 01 movw r30, r18
35e: 09 95 icall
360: 89 2b or r24, r25
362: 11 f0 breq .+4 ; 0x368 <puts+0x60>
364: 0f ef ldi r16, 0xFF ; 255
366: 1f ef ldi r17, 0xFF ; 255
368: c8 01 movw r24, r16
36a: df 91 pop r29
36c: cf 91 pop r28
36e: 1f 91 pop r17
370: 0f 91 pop r16
372: 08 95 ret
00000374 <vfprintf>:
374: 2f 92 push r2
376: 3f 92 push r3
378: 4f 92 push r4
37a: 5f 92 push r5
37c: 6f 92 push r6
37e: 7f 92 push r7
380: 8f 92 push r8
382: 9f 92 push r9
384: af 92 push r10
386: bf 92 push r11
388: cf 92 push r12
38a: df 92 push r13
38c: ef 92 push r14
38e: ff 92 push r15
390: 0f 93 push r16
392: 1f 93 push r17
394: cf 93 push r28
396: df 93 push r29
398: cd b7 in r28, 0x3d ; 61
39a: de b7 in r29, 0x3e ; 62
39c: 62 97 sbiw r28, 0x12 ; 18
39e: 0f b6 in r0, 0x3f ; 63
3a0: f8 94 cli
3a2: de bf out 0x3e, r29 ; 62
3a4: 0f be out 0x3f, r0 ; 63
3a6: cd bf out 0x3d, r28 ; 61
3a8: ee 24 eor r14, r14
3aa: ff 24 eor r15, r15
3ac: 87 01 movw r16, r14
3ae: 1c 01 movw r2, r24
3b0: 7e 87 std Y+14, r23 ; 0x0e
3b2: 6d 87 std Y+13, r22 ; 0x0d
3b4: 2a 01 movw r4, r20
3b6: cc 24 eor r12, r12
3b8: dd 24 eor r13, r13
3ba: fc 01 movw r30, r24
3bc: d7 82 std Z+7, r13 ; 0x07
3be: c6 82 std Z+6, r12 ; 0x06
3c0: 83 81 ldd r24, Z+3 ; 0x03
3c2: 81 fd sbrc r24, 1
3c4: 68 c2 rjmp .+1232 ; 0x896 <__stack+0x37>
3c6: 8f ef ldi r24, 0xFF ; 255
3c8: 9f ef ldi r25, 0xFF ; 255
3ca: 78 c2 rjmp .+1264 ; 0x8bc <__stack+0x5d>
3cc: 8d 85 ldd r24, Y+13 ; 0x0d
3ce: 9e 85 ldd r25, Y+14 ; 0x0e
3d0: 01 96 adiw r24, 0x01 ; 1
3d2: 9e 87 std Y+14, r25 ; 0x0e
3d4: 8d 87 std Y+13, r24 ; 0x0d
3d6: c0 fe sbrs r12, 0
3d8: 4b c2 rjmp .+1174 ; 0x870 <__stack+0x11>
3da: 8f 85 ldd r24, Y+15 ; 0x0f
3dc: 80 53 subi r24, 0x30 ; 48
3de: 8a 30 cpi r24, 0x0A ; 10
3e0: d0 f4 brcc .+52 ; 0x416 <vfprintf+0xa2>
3e2: 9f 85 ldd r25, Y+15 ; 0x0f
3e4: 90 33 cpi r25, 0x30 ; 48
3e6: 39 f4 brne .+14 ; 0x3f6 <vfprintf+0x82>
3e8: 66 20 and r6, r6
3ea: 29 f4 brne .+10 ; 0x3f6 <vfprintf+0x82>
3ec: c3 fc sbrc r12, 3
3ee: 03 c0 rjmp .+6 ; 0x3f6 <vfprintf+0x82>
3f0: e0 e0 ldi r30, 0x00 ; 0
3f2: f1 e0 ldi r31, 0x01 ; 1
3f4: 8d c0 rjmp .+282 ; 0x510 <vfprintf+0x19c>
3f6: 8a e0 ldi r24, 0x0A ; 10
3f8: 68 9e mul r6, r24
3fa: 60 2c mov r6, r0
3fc: 11 24 eor r1, r1
3fe: ff 85 ldd r31, Y+15 ; 0x0f
400: 6f 0e add r6, r31
402: 20 ed ldi r18, 0xD0 ; 208
404: 62 0e add r6, r18
406: 67 fe sbrs r6, 7
408: 02 c0 rjmp .+4 ; 0x40e <vfprintf+0x9a>
40a: 5f e7 ldi r21, 0x7F ; 127
40c: 65 2e mov r6, r21
40e: c3 fc sbrc r12, 3
410: 42 c2 rjmp .+1156 ; 0x896 <__stack+0x37>
412: 76 2c mov r7, r6
414: 40 c2 rjmp .+1152 ; 0x896 <__stack+0x37>
416: c3 fe sbrs r12, 3
418: 04 c0 rjmp .+8 ; 0x422 <vfprintf+0xae>
41a: 66 20 and r6, r6
41c: 11 f4 brne .+4 ; 0x422 <vfprintf+0xae>
41e: 41 e0 ldi r20, 0x01 ; 1
420: 64 2e mov r6, r20
422: ef 85 ldd r30, Y+15 ; 0x0f
424: 8e 2f mov r24, r30
426: 99 27 eor r25, r25
428: 87 fd sbrc r24, 7
42a: 90 95 com r25
42c: 88 36 cpi r24, 0x68 ; 104
42e: 91 05 cpc r25, r1
430: 8c f5 brge .+98 ; 0x494 <vfprintf+0x120>
432: 85 36 cpi r24, 0x65 ; 101
434: 91 05 cpc r25, r1
436: 0c f0 brlt .+2 ; 0x43a <vfprintf+0xc6>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -