📄 main.lst
字号:
941 2FCA B1D6
941 D3A3 BA25
941 64C4 EA25
944 __c.2:
945 006c C7EB B0B4 .string "\307\353\260\264 <\304\352 \324\302 \310\325 \320\307\306\332 \320\241\312\261 \267\326 \
945 203C C4EA
945 20D4 C220
945 C8D5 20D0
945 C7C6 DA20
948 __c.3:
949 0098 0AC9 E8D6 .string "\n\311\350\326\303\315\352\263\311!\n"
949 C3CD EAB3
949 C921 0A00
952 __c.4:
953 00a4 CAE4 C8EB .string "\312\344\310\353\303\374\301\356\243\272g - \264\362\323\241\310\325\300\372/\312\261\326
953 C3FC C1EE
953 A3BA 6720
953 2D20 B4F2
953 D3A1 C8D5
954 .data
955 .LC0:
956 0000 2563 00 .string "%c"
957 .LC1:
958 0003 2564 2C25 .string "%d,%d,%d,%d,%d,%d,%d"
958 642C 2564
958 2C25 642C
958 2564 2C25
958 642C 2564
959 .text
961 .global main
963 main:
238:main.c **** /*************接口部分***************结束**************/
239:main.c ****
240:main.c **** int main(void)
241:main.c **** {
965 .LM120:
966 /* prologue: frame size=15 */
967 02a8 C0E0 ldi r28,lo8(__stack - 15)
968 02aa D0E0 ldi r29,hi8(__stack - 15)
969 02ac DEBF out __SP_H__,r29
970 02ae CDBF out __SP_L__,r28
971 /* prologue end (size=4) */
242:main.c **** uchar i;
243:main.c **** char c;
244:main.c **** int tmp[7];//从标准I/O读取缓冲区
245:main.c ****
246:main.c **** IoInit();
973 .LM121:
974 .LBB13:
975 02b0 C9DE rcall IoInit
247:main.c **** RtcInit();
977 .LM122:
978 02b2 52DF rcall RtcInit
248:main.c ****
249:main.c **** printf_P(PSTR("输入命令:g - 打印日历/时钟,s - 设置日历/时钟,h - 帮助信息\n"));
980 .LM123:
981 02b4 80E0 ldi r24,lo8(__c.0)
982 02b6 90E0 ldi r25,hi8(__c.0)
983 .L104:
984 02b8 9F93 push r25
985 02ba 8F93 push r24
986 02bc 00D0 rcall printf_P
250:main.c ****
251:main.c **** while(1)
988 .LM124:
989 02be 0F90 pop __tmp_reg__
990 02c0 0F90 pop __tmp_reg__
991 .L103:
252:main.c **** {
253:main.c **** scanf("%c",&c);
993 .LM125:
994 02c2 CE01 movw r24,r28
995 02c4 0F96 adiw r24,15
996 02c6 9F93 push r25
997 02c8 8F93 push r24
998 02ca 80E0 ldi r24,lo8(.LC0)
999 02cc 90E0 ldi r25,hi8(.LC0)
1000 02ce 9F93 push r25
1001 02d0 8F93 push r24
1002 02d2 00D0 rcall scanf
254:main.c **** if(c=='g')
1004 .LM126:
1005 02d4 8F85 ldd r24,Y+15
1006 02d6 0F90 pop __tmp_reg__
1007 02d8 0F90 pop __tmp_reg__
1008 02da 0F90 pop __tmp_reg__
1009 02dc 0F90 pop __tmp_reg__
1010 02de 8736 cpi r24,lo8(103)
1011 02e0 A9F5 brne .L89
255:main.c **** {
256:main.c **** RtcUpdateData(RTC_READ);
1013 .LM127:
1014 02e2 81E0 ldi r24,lo8(1)
1015 02e4 3CDF rcall RtcUpdateData
257:main.c **** RtcBCDToBin();
1017 .LM128:
1018 02e6 A5DF rcall RtcBCDToBin
258:main.c ****
259:main.c **** printf_P(PSTR("当前日历/时钟:%d年%d月%d日 星期%d %d:%d:%d\n"),g_aTimeBin[6],g_aTimeBin[5],g_aT
1020 .LM129:
1021 02e8 8091 0000 lds r24,g_aTimeBin
1022 02ec 9927 clr r25
1023 02ee 9F93 push r25
1024 02f0 8F93 push r24
1025 02f2 8091 0000 lds r24,g_aTimeBin+1
1026 02f6 9927 clr r25
1027 02f8 9F93 push r25
1028 02fa 8F93 push r24
1029 02fc 8091 0000 lds r24,g_aTimeBin+2
1030 0300 9927 clr r25
1031 0302 9F93 push r25
1032 0304 8F93 push r24
1033 0306 8091 0000 lds r24,g_aTimeBin+3
1034 030a 9927 clr r25
1035 030c 9F93 push r25
1036 030e 8F93 push r24
1037 0310 8091 0000 lds r24,g_aTimeBin+4
1038 0314 9927 clr r25
1039 0316 9F93 push r25
1040 0318 8F93 push r24
1041 031a 8091 0000 lds r24,g_aTimeBin+5
1042 031e 9927 clr r25
1043 0320 9F93 push r25
1044 0322 8F93 push r24
1045 0324 8091 0000 lds r24,g_aTimeBin+6
1046 0328 9927 clr r25
1047 032a 9F93 push r25
1048 032c 8F93 push r24
1049 032e 80E0 ldi r24,lo8(__c.1)
1050 0330 90E0 ldi r25,hi8(__c.1)
1051 0332 9F93 push r25
1052 0334 8F93 push r24
1053 0336 00D0 rcall printf_P
1054 0338 2DB7 in r18,__SP_L__
1055 033a 3EB7 in r19,__SP_H__
1056 033c 205F subi r18,lo8(-(16))
1057 033e 3F4F sbci r19,hi8(-(16))
1058 0340 0FB6 in __tmp_reg__,__SREG__
1059 0342 F894 cli
1060 0344 3EBF out __SP_H__,r19
1061 0346 0FBE out __SREG__,__tmp_reg__
1062 0348 2DBF out __SP_L__,r18
1063 034a BBCF rjmp .L103
1064 .L89:
260:main.c **** }
261:main.c **** else if(c=='s')
1066 .LM130:
1067 034c 8337 cpi r24,lo8(115)
1068 034e 09F0 breq .+2
1069 0350 40C0 rjmp .L91
262:main.c **** {
263:main.c **** printf_P(PSTR("请按 <年 月 日 星期 小时 分 秒> 格式输入:\n"));
1071 .LM131:
1072 0352 80E0 ldi r24,lo8(__c.2)
1073 0354 90E0 ldi r25,hi8(__c.2)
1074 0356 9F93 push r25
1075 0358 8F93 push r24
1076 035a 00D0 rcall printf_P
264:main.c **** scanf("%d,%d,%d,%d,%d,%d,%d",tmp+6,tmp+5,tmp+4,tmp+3,tmp+2,tmp+1,tmp);
1078 .LM132:
1079 035c 8E01 movw r16,r28
1080 035e 0F5F subi r16,lo8(-(1))
1081 0360 1F4F sbci r17,hi8(-(1))
1082 0362 1F93 push r17
1083 0364 0F93 push r16
1084 0366 CE01 movw r24,r28
1085 0368 0396 adiw r24,3
1086 036a 9F93 push r25
1087 036c 8F93 push r24
1088 036e CE01 movw r24,r28
1089 0370 0596 adiw r24,5
1090 0372 9F93 push r25
1091 0374 8F93 push r24
1092 0376 CE01 movw r24,r28
1093 0378 0796 adiw r24,7
1094 037a 9F93 push r25
1095 037c 8F93 push r24
1096 037e CE01 movw r24,r28
1097 0380 0996 adiw r24,9
1098 0382 9F93 push r25
1099 0384 8F93 push r24
1100 0386 CE01 movw r24,r28
1101 0388 0B96 adiw r24,11
1102 038a 9F93 push r25
1103 038c 8F93 push r24
1104 038e CE01 movw r24,r28
1105 0390 0D96 adiw r24,13
1106 0392 9F93 push r25
1107 0394 8F93 push r24
1108 0396 80E0 ldi r24,lo8(.LC1)
1109 0398 90E0 ldi r25,hi8(.LC1)
1110 039a 9F93 push r25
1111 039c 8F93 push r24
1112 039e 00D0 rcall scanf
265:main.c ****
266:main.c **** for(i=0;i<7;i++)
1114 .LM133:
1115 03a0 90E0 ldi r25,lo8(0)
1116 03a2 2DB7 in r18,__SP_L__
1117 03a4 3EB7 in r19,__SP_H__
1118 03a6 2E5E subi r18,lo8(-(18))
1119 03a8 3F4F sbci r19,hi8(-(18))
1120 03aa 0FB6 in __tmp_reg__,__SREG__
1121 03ac F894 cli
1122 03ae 3EBF out __SP_H__,r19
1123 03b0 0FBE out __SREG__,__tmp_reg__
1124 03b2 2DBF out __SP_L__,r18
1125 03b4 A0E0 ldi r26,lo8(g_aTimeBin)
1126 03b6 B0E0 ldi r27,hi8(g_aTimeBin)
1127 03b8 F801 movw r30,r16
1128 .L96:
267:main.c **** g_aTimeBin[i]=(uchar)tmp[i];
1130 .LM134:
1131 03ba 8081 ld r24,Z
1132 03bc 3296 adiw r30,2
1133 03be 8D93 st X+,r24
1135 .LM135:
1136 03c0 9F5F subi r25,lo8(-(1))
1137 03c2 9730 cpi r25,lo8(7)
1138 03c4 D0F3 brlo .L96
268:main.c ****
269:main.c **** RtcBinToBCD();
1140 .LM136:
1141 03c6 FEDE rcall RtcBinToBCD
270:main.c **** RtcUpdateData(RTC_WRITE);
1143 .LM137:
1144 03c8 80E0 ldi r24,lo8(0)
1145 03ca C9DE rcall RtcUpdateData
271:main.c ****
272:main.c **** printf_P(PSTR("\n设置完成!\n"));
1147 .LM138:
1148 03cc 80E0 ldi r24,lo8(__c.3)
1149 03ce 90E0 ldi r25,hi8(__c.3)
1150 03d0 73CF rjmp .L104
1151 .L91:
273:main.c **** }
274:main.c **** else if(c=='h')
1153 .LM139:
1154 03d2 8836 cpi r24,lo8(104)
1155 03d4 09F0 breq .+2
1156 03d6 75CF rjmp .L103
275:main.c **** printf_P(PSTR("输入命令:g - 打印日历/时钟,s - 设置日历/时钟,h - 帮助信息\n"));
1158 .LM140:
1159 03d8 80E0 ldi r24,lo8(__c.4)
1160 03da 90E0 ldi r25,hi8(__c.4)
1161 03dc 6DCF rjmp .L104
276:main.c **** else
277:main.c **** continue;
278:main.c **** }
279:main.c **** return 0;
280:main.c **** }
1163 .LM141:
1164 .LBE13:
1165 /* epilogue: frame size=15 */
1166 /* epilogue: noreturn */
1167 /* epilogue end (size=0) */
1168 /* function main size 155 (151) */
1175 .comm g_hFile,2,1
1176 .comm g_aTimeBuf,7,1
1177 .comm g_aTimeBin,7,1
1181 .text
1183 Letext:
1184 /* File "main.c": code 498 = 0x01f2 ( 418), prologues 34, epilogues 46 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:80 .text:00000000 DelayMs
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:140 .text:00000020 usart_putchar
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:176 .text:0000003a usart_getchar
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:200 .text:00000044 IoInit
*COM*:00000002 g_hFile
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:234 .text:00000064 twi_stop
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:253 .text:0000006a twi_start
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:285 .text:0000007e twi_writebyte
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:321 .text:00000094 twi_readbyte
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:374 .text:000000b2 rtc_write
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:443 .text:000000f0 rtc_read
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:534 .text:00000158 RtcInit
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:554 .text:0000015e RtcUpdateData
*COM*:00000007 g_aTimeBuf
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:600 .text:0000017a RtcReadRAM
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:625 .text:00000182 RtcWriteRAM
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:648 .text:0000018a byte_bintobcd
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:697 .text:000001ac byte_bcdtobin
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:734 .text:000001c4 RtcBinToBCD
*COM*:00000007 g_aTimeBin
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:815 .text:00000232 RtcBCDToBin
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:868 .text:00000264 RtcSetSQWOutput
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:936 .progmem.data:00000000 __c.0
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:940 .progmem.data:0000003e __c.1
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:944 .progmem.data:0000006c __c.2
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:948 .progmem.data:00000098 __c.3
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:952 .progmem.data:000000a4 __c.4
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:963 .text:000002a8 main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8qaaaa.s:1183 .text:000003de Letext
*ABS*:00000000 *ABS*
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fdevopen
__udivmodqi4
__stack
printf_P
scanf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -