📄 main.lss
字号:
3da: de bf out 0x3e, r29 ; 62
3dc: 0f be out 0x3f, r0 ; 63
3de: cd bf out 0x3d, r28 ; 61
3e0: df 91 pop r29
3e2: cf 91 pop r28
3e4: 08 95 ret
000003e6 <main>:
/*************接口部分***************结束**************/
int main(void)
{
3e6: c0 e5 ldi r28, 0x50 ; 80
3e8: d4 e0 ldi r29, 0x04 ; 4
3ea: de bf out 0x3e, r29 ; 62
3ec: cd bf out 0x3d, r28 ; 61
uchar i;
char c;
int tmp[7];//从标准I/O读取缓冲区
IoInit();
3ee: c9 de rcall .-622 ; 0x182
RtcInit();
3f0: 52 df rcall .-348 ; 0x296
printf_P(PSTR("输入命令:g - 打印日历/时钟,s - 设置日历/时钟,h - 帮助信息\n"));
3f2: 86 e2 ldi r24, 0x26 ; 38
3f4: 90 e0 ldi r25, 0x00 ; 0
3f6: 9f 93 push r25
3f8: 8f 93 push r24
3fa: 61 d4 rcall .+2242 ; 0xcbe
while(1)
3fc: 0f 90 pop r0
3fe: 0f 90 pop r0
{
scanf("%c",&c);
400: ce 01 movw r24, r28
402: 0f 96 adiw r24, 0x0f ; 15
404: 9f 93 push r25
406: 8f 93 push r24
408: 80 e6 ldi r24, 0x60 ; 96
40a: 90 e0 ldi r25, 0x00 ; 0
40c: 9f 93 push r25
40e: 8f 93 push r24
410: 7e d4 rcall .+2300 ; 0xd0e
if(c=='g')
412: 8f 85 ldd r24, Y+15 ; 0x0f
414: 0f 90 pop r0
416: 0f 90 pop r0
418: 0f 90 pop r0
41a: 0f 90 pop r0
41c: 87 36 cpi r24, 0x67 ; 103
41e: a9 f5 brne .+106 ; 0x48a
{
RtcUpdateData(RTC_READ);
420: 81 e0 ldi r24, 0x01 ; 1
422: 3c df rcall .-392 ; 0x29c
RtcBCDToBin();
424: a5 df rcall .-182 ; 0x370
printf_P(PSTR("当前日历/时钟:%d年%d月%d日 星期%d %d:%d:%d\n"),g_aTimeBin[6],g_aTimeBin[5],g_aTimeBin[4],g_aTimeBin[3],g_aTimeBin[2],g_aTimeBin[1],g_aTimeBin[0]);
426: 80 91 82 00 lds r24, 0x0082
42a: 99 27 eor r25, r25
42c: 9f 93 push r25
42e: 8f 93 push r24
430: 80 91 83 00 lds r24, 0x0083
434: 99 27 eor r25, r25
436: 9f 93 push r25
438: 8f 93 push r24
43a: 80 91 84 00 lds r24, 0x0084
43e: 99 27 eor r25, r25
440: 9f 93 push r25
442: 8f 93 push r24
444: 80 91 85 00 lds r24, 0x0085
448: 99 27 eor r25, r25
44a: 9f 93 push r25
44c: 8f 93 push r24
44e: 80 91 86 00 lds r24, 0x0086
452: 99 27 eor r25, r25
454: 9f 93 push r25
456: 8f 93 push r24
458: 80 91 87 00 lds r24, 0x0087
45c: 99 27 eor r25, r25
45e: 9f 93 push r25
460: 8f 93 push r24
462: 80 91 88 00 lds r24, 0x0088
466: 99 27 eor r25, r25
468: 9f 93 push r25
46a: 8f 93 push r24
46c: 84 e6 ldi r24, 0x64 ; 100
46e: 90 e0 ldi r25, 0x00 ; 0
470: 9f 93 push r25
472: 8f 93 push r24
474: 24 d4 rcall .+2120 ; 0xcbe
476: 2d b7 in r18, 0x3d ; 61
478: 3e b7 in r19, 0x3e ; 62
47a: 20 5f subi r18, 0xF0 ; 240
47c: 3f 4f sbci r19, 0xFF ; 255
47e: 0f b6 in r0, 0x3f ; 63
480: f8 94 cli
482: 3e bf out 0x3e, r19 ; 62
484: 0f be out 0x3f, r0 ; 63
486: 2d bf out 0x3d, r18 ; 61
488: bb cf rjmp .-138 ; 0x400
}
else if(c=='s')
48a: 83 37 cpi r24, 0x73 ; 115
48c: 09 f0 breq .+2 ; 0x490
48e: 40 c0 rjmp .+128 ; 0x510
{
printf_P(PSTR("请按 <年 月 日 星期 小时 分 秒> 格式输入:\n"));
490: 82 e9 ldi r24, 0x92 ; 146
492: 90 e0 ldi r25, 0x00 ; 0
494: 9f 93 push r25
496: 8f 93 push r24
498: 12 d4 rcall .+2084 ; 0xcbe
scanf("%d,%d,%d,%d,%d,%d,%d",tmp+6,tmp+5,tmp+4,tmp+3,tmp+2,tmp+1,tmp);
49a: 8e 01 movw r16, r28
49c: 0f 5f subi r16, 0xFF ; 255
49e: 1f 4f sbci r17, 0xFF ; 255
4a0: 1f 93 push r17
4a2: 0f 93 push r16
4a4: ce 01 movw r24, r28
4a6: 03 96 adiw r24, 0x03 ; 3
4a8: 9f 93 push r25
4aa: 8f 93 push r24
4ac: ce 01 movw r24, r28
4ae: 05 96 adiw r24, 0x05 ; 5
4b0: 9f 93 push r25
4b2: 8f 93 push r24
4b4: ce 01 movw r24, r28
4b6: 07 96 adiw r24, 0x07 ; 7
4b8: 9f 93 push r25
4ba: 8f 93 push r24
4bc: ce 01 movw r24, r28
4be: 09 96 adiw r24, 0x09 ; 9
4c0: 9f 93 push r25
4c2: 8f 93 push r24
4c4: ce 01 movw r24, r28
4c6: 0b 96 adiw r24, 0x0b ; 11
4c8: 9f 93 push r25
4ca: 8f 93 push r24
4cc: ce 01 movw r24, r28
4ce: 0d 96 adiw r24, 0x0d ; 13
4d0: 9f 93 push r25
4d2: 8f 93 push r24
4d4: 83 e6 ldi r24, 0x63 ; 99
4d6: 90 e0 ldi r25, 0x00 ; 0
4d8: 9f 93 push r25
4da: 8f 93 push r24
4dc: 18 d4 rcall .+2096 ; 0xd0e
for(i=0;i<7;i++)
4de: 90 e0 ldi r25, 0x00 ; 0
4e0: 2d b7 in r18, 0x3d ; 61
4e2: 3e b7 in r19, 0x3e ; 62
4e4: 2e 5e subi r18, 0xEE ; 238
4e6: 3f 4f sbci r19, 0xFF ; 255
4e8: 0f b6 in r0, 0x3f ; 63
4ea: f8 94 cli
4ec: 3e bf out 0x3e, r19 ; 62
4ee: 0f be out 0x3f, r0 ; 63
4f0: 2d bf out 0x3d, r18 ; 61
4f2: a2 e8 ldi r26, 0x82 ; 130
4f4: b0 e0 ldi r27, 0x00 ; 0
4f6: f8 01 movw r30, r16
g_aTimeBin[i]=(uchar)tmp[i];
4f8: 80 81 ld r24, Z
4fa: 32 96 adiw r30, 0x02 ; 2
4fc: 8d 93 st X+, r24
4fe: 9f 5f subi r25, 0xFF ; 255
500: 97 30 cpi r25, 0x07 ; 7
502: d0 f3 brcs .-12 ; 0x4f8
RtcBinToBCD();
504: fe de rcall .-516 ; 0x302
RtcUpdateData(RTC_WRITE);
506: 80 e0 ldi r24, 0x00 ; 0
508: c9 de rcall .-622 ; 0x29c
printf_P(PSTR("\n设置完成!\n"));
50a: 8e eb ldi r24, 0xBE ; 190
50c: 90 e0 ldi r25, 0x00 ; 0
50e: 73 cf rjmp .-282 ; 0x3f6
}
else if(c=='h')
510: 88 36 cpi r24, 0x68 ; 104
512: 09 f0 breq .+2 ; 0x516
514: 75 cf rjmp .-278 ; 0x400
printf_P(PSTR("输入命令:g - 打印日历/时钟,s - 设置日历/时钟,h - 帮助信息\n"));
516: 8a ec ldi r24, 0xCA ; 202
518: 90 e0 ldi r25, 0x00 ; 0
51a: 6d cf rjmp .-294 ; 0x3f6
0000051c <vfprintf>:
else
continue;
}
return 0;
}
51c: af e0 ldi r26, 0x0F ; 15
51e: b0 e0 ldi r27, 0x00 ; 0
520: e3 e9 ldi r30, 0x93 ; 147
522: f2 e0 ldi r31, 0x02 ; 2
524: 83 c5 rjmp .+2822 ; 0x102c
526: aa 24 eor r10, r10
528: bb 24 eor r11, r11
52a: 65 01 movw r12, r10
52c: 3c 01 movw r6, r24
52e: 2b 01 movw r4, r22
530: 4d 87 std Y+13, r20 ; 0x0d
532: 5e 87 std Y+14, r21 ; 0x0e
534: 22 24 eor r2, r2
536: fc 01 movw r30, r24
538: 16 82 std Z+6, r1 ; 0x06
53a: 17 82 std Z+7, r1 ; 0x07
53c: 83 81 ldd r24, Z+3 ; 0x03
53e: 81 fd sbrc r24, 1
540: 50 c1 rjmp .+672 ; 0x7e2
542: 8f ef ldi r24, 0xFF ; 255
544: 9f ef ldi r25, 0xFF ; 255
546: 60 c1 rjmp .+704 ; 0x808
548: 20 fe sbrs r2, 0
54a: 3d c1 rjmp .+634 ; 0x7c6
54c: 83 2d mov r24, r3
54e: 80 53 subi r24, 0x30 ; 48
550: 8a 30 cpi r24, 0x0A ; 10
552: 08 f4 brcc .+2 ; 0x556
554: 46 c1 rjmp .+652 ; 0x7e2
556: 83 2d mov r24, r3
558: 99 27 eor r25, r25
55a: 87 fd sbrc r24, 7
55c: 90 95 com r25
55e: 88 36 cpi r24, 0x68 ; 104
560: 91 05 cpc r25, r1
562: 3c f5 brge .+78 ; 0x5b2
564: 85 36 cpi r24, 0x65 ; 101
566: 91 05 cpc r25, r1
568: 0c f0 brlt .+2 ; 0x56c
56a: 4d c0 rjmp .+154 ; 0x606
56c: 88 35 cpi r24, 0x58 ; 88
56e: 91 05 cpc r25, r1
570: 09 f4 brne .+2 ; 0x574
572: a2 c0 rjmp .+324 ; 0x6b8
574: 89 35 cpi r24, 0x59 ; 89
576: 91 05 cpc r25, r1
578: a4 f4 brge .+40 ; 0x5a2
57a: 8b 32 cpi r24, 0x2B ; 43
57c: 91 05 cpc r25, r1
57e: 09 f4 brne .+2 ; 0x582
580: 30 c1 rjmp .+608 ; 0x7e2
582: 8c 32 cpi r24, 0x2C ; 44
584: 91 05 cpc r25, r1
586: 44 f4 brge .+16 ; 0x598
588: 80 32 cpi r24, 0x20 ; 32
58a: 91 05 cpc r25, r1
58c: 09 f4 brne .+2 ; 0x590
58e: 29 c1 rjmp .+594 ; 0x7e2
590: 83 97 sbiw r24, 0x23 ; 35
592: 09 f4 brne .+2 ; 0x596
594: 26 c1 rjmp .+588 ; 0x7e2
596: 0f c1 rjmp .+542 ; 0x7b6
598: 8d 97 sbiw r24, 0x2d ; 45
59a: 02 97 sbiw r24, 0x02 ; 2
59c: 08 f0 brcs .+2 ; 0x5a0
59e: 0b c1 rjmp .+534 ; 0x7b6
5a0: 20 c1 rjmp .+576 ; 0x7e2
5a2: 83 36 cpi r24, 0x63 ; 99
5a4: 91 05 cpc r25, r1
5a6: c1 f1 breq .+112 ; 0x618
5a8: 84 36 cpi r24, 0x64 ; 100
5aa: 91 05 cpc r25, r1
5ac: 09 f4 brne .+2 ; 0x5b0
5ae: 54 c0 rjmp .+168 ; 0x658
5b0: 02 c1 rjmp .+516 ; 0x7b6
5b2: 80 37 cpi r24, 0x70 ; 112
5b4: 91 05 cpc r25, r1
5b6: 09 f4 brne .+2 ; 0x5ba
5b8: 7b c0 rjmp .+246 ; 0x6b0
5ba: 81 37 cpi r24, 0x71 ; 113
5bc: 91 05 cpc r25, r1
5be: 84 f4 brge .+32 ; 0x5e0
5c0: 8c 36 cpi r24, 0x6C ; 108
5c2: 91 05 cpc r25, r1
5c4: e9 f0 breq .+58 ; 0x600
5c6: 8d 36 cpi r24, 0x6D ; 109
5c8: 91 05 cpc r25, r1
5ca: 2c f4 brge .+10 ; 0x5d6
5cc: 89 36 cpi r24, 0x69 ; 105
5ce: 91 05 cpc r25, r1
5d0: 09 f4 brne .+2 ; 0x5d4
5d2: 42 c0 rjmp .+132 ; 0x658
5d4: f0 c0 rjmp .+480 ; 0x7b6
5d6: 8f 36 cpi r24, 0x6F ; 111
5d8: 91 05 cpc r25, r1
5da: 09 f4 brne .+2 ; 0x5de
5dc: 66 c0 rjmp .+204 ; 0x6aa
5de: eb c0 rjmp .+470 ; 0x7b6
5e0: 85 37 cpi r24, 0x75 ; 117
5e2: 91 05 cpc r25, r1
5e4: 09 f4 brne .+2 ; 0x5e8
5e6: 6a c0 rjmp .+212 ; 0x6bc
5e8: 86 37 cpi r24, 0x76 ; 118
5ea: 91 05 cpc r25, r1
5ec: 24 f4 brge .+8 ; 0x5f6
5ee: 83 37 cpi r24, 0x73 ; 115
5f0: 91 05 cpc r25, r1
5f2: d1 f0 breq .+52 ; 0x628
5f4: e0 c0 rjmp .+448 ; 0x7b6
5f6: 88 37 cpi r24, 0x78 ; 120
5f8: 91 05 cpc r25, r1
5fa: 09 f4 brne .+2 ; 0x5fe
5fc: 5d c0 rjmp .+186 ; 0x6b8
5fe: db c0 rjmp .+438 ; 0x7b6
600: f4 e0 ldi r31, 0x04 ; 4
602: 2f 2a or r2, r31
604: ee c0 rjmp .+476 ; 0x7e2
606: 0f 2e mov r0, r31
608: ff e3 ldi r31, 0x3F ; 63
60a: af 2e mov r10, r31
60c: f0 2d mov r31, r0
60e: 0f 2e mov r0, r31
610: f3 e6 ldi r31, 0x63 ; 99
612: 3f 2e mov r3, r31
614: f0 2d mov r31, r0
616: 9b c0 rjmp .+310 ; 0x74e
618: ed 85 ldd r30, Y+13 ; 0x0d
61a: fe 85 ldd r31, Y+14 ; 0x0e
61c: cf 01 movw r24, r30
61e: 02 96 adiw r24, 0x02 ; 2
620: 8d 87 std Y+13, r24 ; 0x0d
622: 9e 87 std Y+14, r25 ; 0x0e
624: a0 80 ld r10, Z
626: 93 c0 rjmp .+294 ; 0x74e
628: ed 85 ldd r30, Y+13 ; 0x0d
62a: fe 85 ldd r31, Y+14 ; 0x0e
62c: cf 01 movw r24, r30
62e: 02 96 adiw r24, 0x02 ; 2
630: 8d 87 std Y+13, r24 ; 0x0d
632: 9e 87 std Y+14, r25 ; 0x0e
634: a0 80 ld r10, Z
636: b1 80 ldd r11, Z+1 ; 0x01
638: 1f 86 std Y+15, r1 ; 0x0f
63a: f5 01 movw r30, r10
63c: 80 81 ld r24, Z
63e: 88 23 and r24, r24
640: 09 f4 brne .+2 ; 0x644
642: 85 c0 rjmp .+266 ; 0x74e
644: 9f 85 ldd r25, Y+15 ; 0x0f
646: 9f 5f subi r25, 0xFF ; 255
648: 9f 87 std Y+15, r25 ; 0x0f
64a: f5 01 movw r30, r10
64c: e9 0f add r30, r25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -