📄 main.lst
字号:
1047 02f6 85E0 ldi r24,lo8(5)
1048 02f8 0E94 0000 call i2c_Read
1049 02fc 9927 clr r25
1050 02fe 8F71 andi r24,lo8(31)
1051 0300 9070 andi r25,hi8(31)
1052 0302 9093 0000 sts (month)+1,r25
1053 0306 8093 0000 sts month,r24
268:main.c **** date=(i2c_Read(4) & 0x3f);
1055 .LM129:
1056 030a 84E0 ldi r24,lo8(4)
1057 030c 0E94 0000 call i2c_Read
1058 0310 9927 clr r25
1059 0312 8F73 andi r24,lo8(63)
1060 0314 9070 andi r25,hi8(63)
1061 0316 9093 0000 sts (date)+1,r25
1062 031a 8093 0000 sts date,r24
1063 031e 0895 ret
1064 .L88:
269:main.c **** }
270:main.c **** else
271:main.c **** {
272:main.c **** hours=(i2c_Read(2) & 0x3f);
1066 .LM130:
1067 0320 82E0 ldi r24,lo8(2)
1068 0322 0E94 0000 call i2c_Read
1069 0326 9927 clr r25
1070 0328 8F73 andi r24,lo8(63)
1071 032a 9070 andi r25,hi8(63)
1072 032c 9093 0000 sts (hours)+1,r25
1073 0330 8093 0000 sts hours,r24
273:main.c **** minutes=(i2c_Read(1) & 0x7f);
1075 .LM131:
1076 0334 81E0 ldi r24,lo8(1)
1077 0336 0E94 0000 call i2c_Read
1078 033a 9927 clr r25
1079 033c 8F77 andi r24,lo8(127)
1080 033e 9070 andi r25,hi8(127)
1081 0340 9093 0000 sts (minutes)+1,r25
1082 0344 8093 0000 sts minutes,r24
274:main.c **** senconds=(i2c_Read(0) & 0x7f);
1084 .LM132:
1085 0348 80E0 ldi r24,lo8(0)
1086 034a 0E94 0000 call i2c_Read
1087 034e 8F77 andi r24,lo8(127)
1088 0350 8093 0000 sts senconds,r24
1089 0354 0895 ret
1090 /* epilogue: frame size=0 */
1091 0356 0895 ret
1092 /* epilogue end (size=1) */
1093 /* function Gettime size 53 (52) */
1095 .Lscope18:
1097 .global time_init
1099 time_init:
275:main.c **** }
276:main.c **** }
277:main.c **** void time_init(void)
278:main.c **** {
1101 .LM133:
1102 /* prologue: frame size=0 */
1103 /* prologue end (size=0) */
279:main.c **** i2c_Write(0,1);
1105 .LM134:
1106 0358 61E0 ldi r22,lo8(1)
1107 035a 80E0 ldi r24,lo8(0)
1108 035c 0E94 0000 call i2c_Write
1109 /* epilogue: frame size=0 */
1110 0360 0895 ret
1111 /* epilogue end (size=1) */
1112 /* function time_init size 5 (4) */
1114 .Lscope19:
1116 .global disp
1118 disp:
280:main.c **** }
281:main.c **** void disp(void)
282:main.c **** {
1120 .LM135:
1121 /* prologue: frame size=0 */
1122 0362 1F93 push r17
1123 /* prologue end (size=1) */
283:main.c **** SENDCOMB(0x04); //write address
1125 .LM136:
1126 0364 84E0 ldi r24,lo8(4)
1127 0366 0E94 0000 call SENDCOMB
284:main.c **** SendByte(Close[0]<<7 | Close[1]<<1 | Close[2]<<5 | Close[3]<<2);
1129 .LM137:
1130 036a 8091 0000 lds r24,Close
1131 036e 9927 clr r25
1132 0370 9C01 movw r18,r24
1133 0372 3695 lsr r19
1134 0374 322F mov r19,r18
1135 0376 2227 clr r18
1136 0378 3795 ror r19
1137 037a 2795 ror r18
1138 037c 8091 0000 lds r24,Close+1
1139 0380 9927 clr r25
1140 0382 880F lsl r24
1141 0384 991F rol r25
1142 0386 282B or r18,r24
1143 0388 8091 0000 lds r24,Close+2
1144 038c 9927 clr r25
1145 038e 880F lsl r24
1146 0390 991F rol r25
1147 0392 8295 swap r24
1148 0394 9295 swap r25
1149 0396 907F andi r25,0xf0
1150 0398 9827 eor r25,r24
1151 039a 807F andi r24,0xf0
1152 039c 9827 eor r25,r24
1153 039e 282B or r18,r24
1154 03a0 8091 0000 lds r24,Close+3
1155 03a4 9927 clr r25
1156 03a6 880F lsl r24
1157 03a8 991F rol r25
1158 03aa 880F lsl r24
1159 03ac 991F rol r25
1160 03ae 822B or r24,r18
1161 03b0 0E94 0000 call SendByte
285:main.c **** if(N==0)
1163 .LM138:
1164 03b4 8091 0000 lds r24,N
1165 03b8 8823 tst r24
1166 03ba 09F0 breq .+2
1167 03bc 3AC1 rjmp .L92
286:main.c **** {
287:main.c **** a=HIBYTE(hours);
1169 .LM139:
1170 03be 8091 0000 lds r24,hours
1171 03c2 9091 0000 lds r25,(hours)+1
1172 03c6 9C01 movw r18,r24
1173 03c8 3595 asr r19
1174 03ca 2795 ror r18
1175 03cc 3595 asr r19
1176 03ce 2795 ror r18
1177 03d0 3595 asr r19
1178 03d2 2795 ror r18
1179 03d4 3595 asr r19
1180 03d6 2795 ror r18
1181 03d8 2093 0000 sts a,r18
288:main.c **** b=HIBYTE(minutes);
1183 .LM140:
1184 03dc 8091 0000 lds r24,minutes
1185 03e0 9091 0000 lds r25,(minutes)+1
1186 03e4 9595 asr r25
1187 03e6 8795 ror r24
1188 03e8 9595 asr r25
1189 03ea 8795 ror r24
1190 03ec 9595 asr r25
1191 03ee 8795 ror r24
1192 03f0 9595 asr r25
1193 03f2 8795 ror r24
1194 03f4 8093 0000 sts b,r24
289:main.c **** if(a==0) a=10;
1196 .LM141:
1197 03f8 2223 tst r18
1198 03fa 19F4 brne .L93
1199 03fc 8AE0 ldi r24,lo8(10)
1200 03fe 8093 0000 sts a,r24
1201 .L93:
290:main.c **** if(b==0) b=10;
1203 .LM142:
1204 0402 8091 0000 lds r24,b
1205 0406 8823 tst r24
1206 0408 19F4 brne .L94
1207 040a 8AE0 ldi r24,lo8(10)
1208 040c 8093 0000 sts b,r24
1209 .L94:
291:main.c **** if(M[0]==1)
1211 .LM143:
1212 0410 8091 0000 lds r24,M
1213 0414 8130 cpi r24,lo8(1)
1214 0416 09F0 breq .+2
1215 0418 51C0 rjmp .L95
292:main.c **** {
293:main.c **** SENDCOMB(0x2c); //Write address
1217 .LM144:
1218 041a 8CE2 ldi r24,lo8(44)
1219 041c 0E94 0000 call SENDCOMB
1220 .LBB2:
294:main.c **** SendByte(pgm_read_byte(S+a)|(Fuse1<<4)); //write data
1222 .LM145:
1223 0420 8091 0000 lds r24,a
1224 0424 E82F mov r30,r24
1225 0426 FF27 clr r31
1226 0428 E050 subi r30,lo8(-(S))
1227 042a F040 sbci r31,hi8(-(S))
1228 /* #APP */
1229 042c 2491 lpm r18, Z
1230
1231 /* #NOAPP */
1232 .LBE2:
1233 042e 8091 0000 lds r24,Fuse1
1234 0432 9927 clr r25
1235 0434 8295 swap r24
1236 0436 9295 swap r25
1237 0438 907F andi r25,0xf0
1238 043a 9827 eor r25,r24
1239 043c 807F andi r24,0xf0
1240 043e 9827 eor r25,r24
1241 0440 822B or r24,r18
1242 0442 0E94 0000 call SendByte
1243 .LBB3:
295:main.c **** SendByte(pgm_read_byte(S+LOBYTE(hours))|(Fuse2<<4)); //write data
1245 .LM146:
1246 0446 8091 0000 lds r24,hours
1247 044a E82F mov r30,r24
1248 044c FF27 clr r31
1249 044e EF70 andi r30,lo8(15)
1250 0450 F070 andi r31,hi8(15)
1251 0452 E050 subi r30,lo8(-(S))
1252 0454 F040 sbci r31,hi8(-(S))
1253 /* #APP */
1254 0456 2491 lpm r18, Z
1255
1256 /* #NOAPP */
1257 .LBE3:
1258 0458 8091 0000 lds r24,Fuse2
1259 045c 9927 clr r25
1260 045e 8295 swap r24
1261 0460 9295 swap r25
1262 0462 907F andi r25,0xf0
1263 0464 9827 eor r25,r24
1264 0466 807F andi r24,0xf0
1265 0468 9827 eor r25,r24
1266 046a 822B or r24,r18
1267 046c 0E94 0000 call SendByte
1268 .LBB4:
296:main.c **** SendByte((pgm_read_byte(S+HIBYTE(minutes))&Tov1)|(1<<4)); //write data
1270 .LM147:
1271 0470 8091 0000 lds r24,minutes
1272 0474 9091 0000 lds r25,(minutes)+1
1273 0478 9595 asr r25
1274 047a 8795 ror r24
1275 047c 9595 asr r25
1276 047e 8795 ror r24
1277 0480 9595 asr r25
1278 0482 8795 ror r24
1279 0484 9595 asr r25
1280 0486 8795 ror r24
1281 0488 E82F mov r30,r24
1282 048a FF27 clr r31
1283 048c E050 subi r30,lo8(-(S))
1284 048e F040 sbci r31,hi8(-(S))
1285 /* #APP */
1286 0490 9491 lpm r25, Z
1287
1288 /* #NOAPP */
1289 .LBE4:
1290 0492 8091 0000 lds r24,Tov1
1291 0496 8923 and r24,r25
1292 0498 8061 ori r24,lo8(16)
1293 049a 0E94 0000 call SendByte
1294 .LBB5:
297:main.c **** SendByte(pgm_read_byte(S+LOBYTE(minutes))&Tov1); //write data
1296 .LM148:
1297 049e 8091 0000 lds r24,minutes
1298 04a2 E82F mov r30,r24
1299 04a4 FF27 clr r31
1300 04a6 EF70 andi r30,lo8(15)
1301 04a8 F070 andi r31,hi8(15)
1302 04aa E050 subi r30,lo8(-(S))
1303 04ac F040 sbci r31,hi8(-(S))
1304 /* #APP */
1305 04ae 9491 lpm r25, Z
1306
1307 /* #NOAPP */
1308 .LBE5:
1309 04b0 8091 0000 lds r24,Tov1
1310 04b4 8923 and r24,r25
1311 04b6 0E94 0000 call SendByte
298:main.c **** return;
1313 .LM149:
1314 04ba 71C3 rjmp .L91
1315 .L95:
299:main.c **** }
300:main.c **** if(M[0]==2)
1317 .LM150:
1318 04bc 8091 0000 lds r24,M
1319 04c0 8230 cpi r24,lo8(2)
1320 04c2 09F0 breq .+2
1321 04c4 53C0 rjmp .L96
301:main.c **** {
302:main.c **** SENDCOMB(0x2c); //Write address
1323 .LM151:
1324 04c6 8CE2 ldi r24,lo8(44)
1325 04c8 0E94 0000 call SENDCOMB
1326 .LBB6:
303:main.c **** SendByte((pgm_read_byte(S+a)&Tov1)|(Fuse1<<4)); //write data
1328 .LM152:
1329 04cc 8091 0000 lds r24,a
1330 04d0 E82F mov r30,r24
1331 04d2 FF27 clr r31
1332 04d4 E050 subi r30,lo8(-(S))
1333 04d6 F040 sbci r31,hi8(-(S))
1334 /* #APP */
1335 04d8 9491 lpm r25, Z
1336
1337 /* #NOAPP */
1338 .LBE6:
1339 04da 8091 0000 lds r24,Tov1
1340 04de 292F mov r18,r25
1341 04e0 2823 and r18,r24
1342 04e2 8091 0000 lds r24,Fuse1
1343 04e6 9927 clr r25
1344 04e8 8295 swap r24
1345 04ea 9295 swap r25
1346 04ec 907F andi r25,0xf0
1347 04ee 9827 eor r25,r24
1348 04f0 807F andi r24,0xf0
1349 04f2 9827 eor r25,r24
1350 04f4 822B or r24,r18
1351 04f6 0E94 0000 call SendByte
1352 .LBB7:
304:main.c **** SendByte((pgm_read_byte(S+LOBYTE(hours))&Tov1)|(Fuse2<<4)); //write data
1354 .LM153:
1355 04fa 8091 0000 lds r24,hours
1356 04fe E82F mov r30,r24
1357 0500 FF27 clr r31
1358 0502 EF70 andi r30,lo8(15)
1359 0504 F070 andi r31,hi8(15)
1360 0506 E050 subi r30,lo8(-(S))
1361 0508 F040 sbci r31,hi8(-(S))
1362 /* #APP */
1363 050a 9491 lpm r25, Z
1364
1365 /* #NOAPP */
1366 .LBE7:
1367 050c 8091 0000 lds r24,Tov1
1368 0510 292F mov r18,r25
1369 0512 2823 and r18,r24
1370 0514 8091 0000 lds r24,Fuse2
1371 0518 9927 clr r25
1372 051a 8295 swap r24
1373 051c 9295 swap r25
1374 051e 907F andi r25,0xf0
1375 0520 9827 eor r25,r24
1376 0522 807F andi r24,0xf0
1377 0524 9827 eor r25,r24
1378 0526 822B or r24,r18
1379 0528 0E94 0000 call SendByte
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -