📄 main.lst
字号:
1198 .LM130:
1199 056c 81E0 ldi r24,lo8(1)
1200 056e 8093 0000 sts work_mode,r24
186:main.c **** DDRC|=(1<<PC0)|(1<<PC1)|(1<<PC2);
1202 .LM131:
1203 0572 8091 3400 lds r24,52
1204 0576 8760 ori r24,lo8(7)
1205 0578 8093 3400 sts 52,r24
187:main.c **** //DDRB|=_BV(PB6);//为595锁存信号
188:main.c **** //DDRB|=_BV(PB0);
189:main.c **** //DDRB|=_BV(PB1);
190:main.c **** DDRB=0XFF;
1207 .LM132:
1208 057c 8FEF ldi r24,lo8(-1)
1209 057e 8093 3700 sts 55,r24
191:main.c **** DDRD=0xFF;//设置PD口高四位为按键输入,高四位设置为数码管位控输出
1211 .LM133:
1212 0582 8FEF ldi r24,lo8(-1)
1213 0584 8093 3100 sts 49,r24
1214 /* epilogue: frame size=0 */
1215 0588 DF91 pop r29
1216 058a CF91 pop r28
1217 058c 0895 ret
1218 /* epilogue end (size=3) */
1219 /* function init size 25 (18) */
1221 .Lscope14:
1223 .global setting_mode
1225 setting_mode:
192:main.c **** }
193:main.c ****
194:main.c ****
195:main.c ****
196:main.c ****
197:main.c **** /************************************************
198:main.c **** 调用方式:void setting_mode(void)
199:main.c **** 函数说明:
200:main.c **** 传递参数:无
201:main.c **** 返 回 值:无
202:main.c **** ************************************************/
203:main.c **** void setting_mode(void)
204:main.c **** {
1227 .LM134:
1228 /* prologue: frame size=2 */
1229 058e CF93 push r28
1230 0590 DF93 push r29
1231 0592 CDB7 in r28,__SP_L__
1232 0594 DEB7 in r29,__SP_H__
1233 0596 2297 sbiw r28,2
1234 0598 0FB6 in __tmp_reg__,__SREG__
1235 059a F894 cli
1236 059c DEBF out __SP_H__,r29
1237 059e 0FBE out __SREG__,__tmp_reg__
1238 05a0 CDBF out __SP_L__,r28
1239 /* prologue end (size=10) */
205:main.c **** PORTD=0xff;
1241 .LM135:
1242 05a2 8FEF ldi r24,lo8(-1)
1243 05a4 8093 3200 sts 50,r24
206:main.c **** switch(led_wei)
1245 .LM136:
1246 05a8 8091 0000 lds r24,led_wei
1247 05ac 282F mov r18,r24
1248 05ae 3327 clr r19
1249 05b0 2983 std Y+1,r18
1250 05b2 3A83 std Y+2,r19
1251 05b4 8981 ldd r24,Y+1
1252 05b6 9A81 ldd r25,Y+2
1253 05b8 8130 cpi r24,1
1254 05ba 9105 cpc r25,__zero_reg__
1255 05bc F1F0 breq .L55
1257 .LM137:
1258 05be 2981 ldd r18,Y+1
1259 05c0 3A81 ldd r19,Y+2
1260 05c2 2230 cpi r18,2
1261 05c4 3105 cpc r19,__zero_reg__
1262 05c6 2CF4 brge .L58
1263 05c8 8981 ldd r24,Y+1
1264 05ca 9A81 ldd r25,Y+2
1265 05cc 0097 sbiw r24,0
1266 05ce 61F0 breq .L54
1267 05d0 2EC0 rjmp .L53
1268 .L58:
1269 05d2 2981 ldd r18,Y+1
1270 05d4 3A81 ldd r19,Y+2
1271 05d6 2230 cpi r18,2
1272 05d8 3105 cpc r19,__zero_reg__
1273 05da C1F0 breq .L56
1274 05dc 8981 ldd r24,Y+1
1275 05de 9A81 ldd r25,Y+2
1276 05e0 8330 cpi r24,3
1277 05e2 9105 cpc r25,__zero_reg__
1278 05e4 E1F0 breq .L57
1279 05e6 23C0 rjmp .L53
1280 .L54:
207:main.c **** {
208:main.c **** case 0:
209:main.c **** transmission_byte(led[led_data_1]);
1282 .LM138:
1283 05e8 8091 0000 lds r24,led_data_1
1284 05ec 9927 clr r25
1285 05ee FC01 movw r30,r24
1286 05f0 E050 subi r30,lo8(-(led))
1287 05f2 F040 sbci r31,hi8(-(led))
1288 05f4 8081 ld r24,Z
1289 05f6 3CD0 rcall transmission_byte
210:main.c **** break;
1291 .LM139:
1292 05f8 1AC0 rjmp .L53
1293 .L55:
211:main.c **** case 1:
212:main.c **** transmission_byte(led[led_data_2]);
1295 .LM140:
1296 05fa 8091 0000 lds r24,led_data_2
1297 05fe 9927 clr r25
1298 0600 FC01 movw r30,r24
1299 0602 E050 subi r30,lo8(-(led))
1300 0604 F040 sbci r31,hi8(-(led))
1301 0606 8081 ld r24,Z
1302 0608 33D0 rcall transmission_byte
213:main.c **** break;
1304 .LM141:
1305 060a 11C0 rjmp .L53
1306 .L56:
214:main.c **** case 2:
215:main.c **** transmission_byte(led[led_data_3]);
1308 .LM142:
1309 060c 8091 0000 lds r24,led_data_3
1310 0610 9927 clr r25
1311 0612 FC01 movw r30,r24
1312 0614 E050 subi r30,lo8(-(led))
1313 0616 F040 sbci r31,hi8(-(led))
1314 0618 8081 ld r24,Z
1315 061a 2AD0 rcall transmission_byte
216:main.c **** break;
1317 .LM143:
1318 061c 08C0 rjmp .L53
1319 .L57:
217:main.c **** case 3:
218:main.c **** transmission_byte(led[led_data_4]);
1321 .LM144:
1322 061e 8091 0000 lds r24,led_data_4
1323 0622 9927 clr r25
1324 0624 FC01 movw r30,r24
1325 0626 E050 subi r30,lo8(-(led))
1326 0628 F040 sbci r31,hi8(-(led))
1327 062a 8081 ld r24,Z
1328 062c 21D0 rcall transmission_byte
1329 .L53:
219:main.c **** break;
220:main.c **** }
221:main.c **** PORTD=led_wx;
1331 .LM145:
1332 062e 8091 0000 lds r24,led_wx
1333 0632 8093 3200 sts 50,r24
222:main.c **** led_wx=(led_wx<<1)|0x01;
1335 .LM146:
1336 0636 8091 0000 lds r24,led_wx
1337 063a 9927 clr r25
1338 063c 880F lsl r24
1339 063e 991F rol r25
1340 0640 8160 ori r24,lo8(1)
1341 0642 8093 0000 sts led_wx,r24
223:main.c **** if(++led_wei>3)
1343 .LM147:
1344 0646 8091 0000 lds r24,led_wei
1345 064a 8F5F subi r24,lo8(-(1))
1346 064c 8093 0000 sts led_wei,r24
1347 0650 8430 cpi r24,lo8(4)
1348 0652 28F0 brlo .L52
224:main.c **** {
225:main.c **** led_wei=0;
1350 .LM148:
1351 0654 1092 0000 sts led_wei,__zero_reg__
226:main.c **** led_wx=0xfe;
1353 .LM149:
1354 0658 8EEF ldi r24,lo8(-2)
1355 065a 8093 0000 sts led_wx,r24
1356 .L52:
1357 /* epilogue: frame size=2 */
1358 065e 2296 adiw r28,2
1359 0660 0FB6 in __tmp_reg__,__SREG__
1360 0662 F894 cli
1361 0664 DEBF out __SP_H__,r29
1362 0666 0FBE out __SREG__,__tmp_reg__
1363 0668 CDBF out __SP_L__,r28
1364 066a DF91 pop r29
1365 066c CF91 pop r28
1366 066e 0895 ret
1367 /* epilogue end (size=9) */
1368 /* function setting_mode size 113 (94) */
1370 .Lscope15:
1373 .global transmission_byte
1375 transmission_byte:
227:main.c **** }
228:main.c **** }
229:main.c ****
230:main.c **** /************************************************
231:main.c **** 调用方式:uchar transmission_byte(uchar x_byte)
232:main.c **** 函数说明:用IO口模拟SPI发送一个字节数据
233:main.c **** 传递参数:发送数据 uchar x_byte
234:main.c **** 返 回 值:无
235:main.c **** ************************************************/
236:main.c ****
237:main.c **** void transmission_byte(uchar x_byte)
238:main.c **** {
1377 .LM150:
1378 /* prologue: frame size=3 */
1379 0670 CF93 push r28
1380 0672 DF93 push r29
1381 0674 CDB7 in r28,__SP_L__
1382 0676 DEB7 in r29,__SP_H__
1383 0678 2397 sbiw r28,3
1384 067a 0FB6 in __tmp_reg__,__SREG__
1385 067c F894 cli
1386 067e DEBF out __SP_H__,r29
1387 0680 0FBE out __SREG__,__tmp_reg__
1388 0682 CDBF out __SP_L__,r28
1389 /* prologue end (size=10) */
1390 0684 8983 std Y+1,r24
239:main.c **** unsigned char i,j;
240:main.c **** for(i=0;i<8;i++)
1392 .LM151:
1393 0686 1A82 std Y+2,__zero_reg__
1394 .L61:
1396 .LM152:
1397 0688 8A81 ldd r24,Y+2
1398 068a 8830 cpi r24,lo8(8)
1399 068c 40F5 brsh .L60
241:main.c **** {
242:main.c **** j=x_byte&0x80;
1401 .LM153:
1402 068e 90E8 ldi r25,lo8(-128)
1403 0690 8981 ldd r24,Y+1
1404 0692 8923 and r24,r25
1405 0694 8B83 std Y+3,r24
243:main.c **** if(j==0x80)
1407 .LM154:
1408 0696 8B81 ldd r24,Y+3
1409 0698 8038 cpi r24,lo8(-128)
1410 069a 31F4 brne .L64
244:main.c **** set_data();
1412 .LM155:
1413 069c 8091 3800 lds r24,56
1414 06a0 8260 ori r24,lo8(2)
1415 06a2 8093 3800 sts 56,r24
1416 06a6 05C0 rjmp .L65
1417 .L64:
245:main.c **** else clr_data();
1419 .LM156:
1420 06a8 8091 3800 lds r24,56
1421 06ac 8D7F andi r24,lo8(-3)
1422 06ae 8093 3800 sts 56,r24
1423 .L65:
246:main.c **** clr_clk();
1425 .LM157:
1426 06b2 8091 3800 lds r24,56
1427 06b6 8E7F andi r24,lo8(-2)
1428 06b8 8093 3800 sts 56,r24
247:main.c **** set_clk();
1430 .LM158:
1431 06bc 8091 3800 lds r24,56
1432 06c0 8160 ori r24,lo8(1)
1433 06c2 8093 3800 sts 56,r24
248:main.c **** clr_clk();
1435 .LM159:
1436 06c6 8091 3800 lds r24,56
1437 06ca 8E7F andi r24,lo8(-2)
1438 06cc 8093 3800 sts 56,r24
249:main.c **** x_byte=x_byte<<1;
1440 .LM160:
1441 06d0 8981 ldd r24,Y+1
1442 06d2 880F lsl r24
1443 06d4 8983 std Y+1,r24
1445 .LM161:
1446 06d6 8A81 ldd r24,Y+2
1447 06d8 8F5F subi r24,lo8(-(1))
1448 06da 8A83 std Y+2,r24
1449 06dc D5CF rjmp .L61
1450 .L60:
1451 /* epilogue: frame size=3 */
1452 06de 2396 adiw r28,3
1453 06e0 0FB6 in __tmp_reg__,__SREG__
1454 06e2 F894 cli
1455 06e4 DEBF out __SP_H__,r29
1456 06e6 0FBE out __SREG__,__tmp_reg__
1457 06e8 CDBF out __SP_L__,r28
1458 06ea DF91 pop r29
1459 06ec CF91 pop r28
1460 06ee 0895 ret
1461 /* epilogue end (size=9) */
1462 /* function transmission_byte size 64 (45) */
1468 .Lscope16:
1469 .comm data_Int1,1,1
1470 .comm data_Int2,1,1
1471 .comm jtd_data1,2,1
1472 .comm jtd_data2,2,1
1473 .comm color,1,1
1474 .comm key_data,1,1
1475 .comm work_mode,1,1
1476 .comm led_data_1,1,1
1477 .comm led_data_2,1,1
1478 .comm led_data_3,1,1
1479 .comm led_data_4,1,1
1480 .comm led_wei,1,1
1481 .comm t0_quantum,1,1
1506 .text
1508 Letext:
1509 /* File "main.c": code 890 = 0x037a ( 633), prologues 139, epilogues 118 */
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__
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:61 .data:00000000 year
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:65 .data:00000001 month
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:69 .data:00000002 day
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:73 .data:00000003 week
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:77 .data:00000004 hour
C:\DOCUME~1\wxdxh\LOCALS~1\Temp/ccc9aaaa.s:81 .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -