⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 基于AVR单片机(ATMega64)的辞别力拼图游戏
💻 LST
📖 第 1 页 / 共 5 页
字号:
 132:lcd_cn.c      **** 	  disbuf[i]=0;
 1244               	.LM68:
 1245 0224 1192      		st Z+,__zero_reg__
 1246 0226 0196      		adiw r24,1
 1248               	.LM69:
 1249 0228 20E0      		ldi r18,hi8(disbuf+1023)
 1250 022a 8030      		cpi r24,lo8(disbuf+1023)
 1251 022c 9207      		cpc r25,r18
 1252 022e D1F3      		breq .L73
 1253 0230 C8F3      		brlo .L73
 1254               	.L57:
 1255               	/* epilogue: frame size=0 */
 1256 0232 DF91      		pop r29
 1257 0234 CF91      		pop r28
 1258 0236 1F91      		pop r17
 1259 0238 0F91      		pop r16
 1260 023a FF90      		pop r15
 1261 023c 0895      		ret
 1262               	/* epilogue end (size=6) */
 1263               	/* function clr size 73 (62) */
 1269               	.Lscope5:
 1271               	.global	lcd_ini
 1273               	lcd_ini:
 133:lcd_cn.c      ****    }
 134:lcd_cn.c      ****    
 135:lcd_cn.c      **** }
 136:lcd_cn.c      **** 
 137:lcd_cn.c      **** void lcd_ini(void)
 138:lcd_cn.c      **** {
 1275               	.LM70:
 1276               	/* prologue: frame size=0 */
 1277               	/* prologue end (size=0) */
 139:lcd_cn.c      ****  set(1);
 1279               	.LM71:
 1280 023e 81E0      		ldi r24,lo8(1)
 1281 0240 0E94 0000 		call set
 140:lcd_cn.c      ****  clr(3); 
 1283               	.LM72:
 1284 0244 83E0      		ldi r24,lo8(3)
 1285 0246 0E94 0000 		call clr
 141:lcd_cn.c      ****  clr(8);
 1287               	.LM73:
 1288 024a 88E0      		ldi r24,lo8(8)
 1289 024c 0E94 0000 		call clr
 1290               	/* epilogue: frame size=0 */
 1291 0250 0895      		ret
 1292               	/* epilogue end (size=1) */
 1293               	/* function lcd_ini size 10 (9) */
 1295               	.Lscope6:
 1299               	.global	go
 1301               	go:
 142:lcd_cn.c      **** }
 143:lcd_cn.c      **** 
 144:lcd_cn.c      **** /*光标定位*/
 145:lcd_cn.c      **** void go(uchar xxx, uchar yyy)
 146:lcd_cn.c      **** { w_lcd(com,0x32);
 1303               	.LM74:
 1304               	/* prologue: frame size=0 */
 1305 0252 1F93      		push r17
 1306 0254 CF93      		push r28
 1307               	/* prologue end (size=2) */
 1308 0256 C82F      		mov r28,r24
 1309 0258 162F      		mov r17,r22
 1310 025a 62E3      		ldi r22,lo8(50)
 1311 025c 80E0      		ldi r24,lo8(0)
 1312 025e 0E94 0000 		call w_lcd
 147:lcd_cn.c      ****   if(yyy==0)  w_lcd(com,0x80+xxx);
 1314               	.LM75:
 1315 0262 1123      		tst r17
 1316 0264 21F4      		brne .L80
 1318               	.LM76:
 1319 0266 C058      		subi r28,lo8(-(-128))
 1320 0268 6C2F      		mov r22,r28
 1321 026a 812F      		mov r24,r17
 1322 026c 0DC0      		rjmp .L88
 1323               	.L80:
 148:lcd_cn.c      ****   else if(yyy==1) w_lcd(com,0x90+xxx);
 1325               	.LM77:
 1326 026e 1130      		cpi r17,lo8(1)
 1327 0270 11F4      		brne .L82
 1328 0272 C057      		subi r28,lo8(-(-112))
 1329 0274 07C0      		rjmp .L87
 1330               	.L82:
 149:lcd_cn.c      ****   else if(yyy==2) w_lcd(com,0x88+xxx);
 1332               	.LM78:
 1333 0276 1230      		cpi r17,lo8(2)
 1334 0278 11F4      		brne .L84
 1335 027a C857      		subi r28,lo8(-(-120))
 1336 027c 03C0      		rjmp .L87
 1337               	.L84:
 150:lcd_cn.c      ****   else if(yyy==3) w_lcd(com,0x98+xxx);
 1339               	.LM79:
 1340 027e 1330      		cpi r17,lo8(3)
 1341 0280 29F4      		brne .L79
 1342 0282 C856      		subi r28,lo8(-(-104))
 1343               	.L87:
 1344 0284 6C2F      		mov r22,r28
 1345 0286 80E0      		ldi r24,lo8(0)
 1346               	.L88:
 1347 0288 0E94 0000 		call w_lcd
 1348               	.L79:
 1349               	/* epilogue: frame size=0 */
 1350 028c CF91      		pop r28
 1351 028e 1F91      		pop r17
 1352 0290 0895      		ret
 1353               	/* epilogue end (size=3) */
 1354               	/* function go size 32 (27) */
 1356               	.Lscope7:
 1360               	.global	wn
 1362               	wn:
 151:lcd_cn.c      **** }
 152:lcd_cn.c      ****  
 153:lcd_cn.c      **** void wn(uchar num1,uchar num2)		//wtite nunbers or letters
 154:lcd_cn.c      **** {if(num1<10)
 1364               	.LM80:
 1365               	/* prologue: frame size=0 */
 1366 0292 CF93      		push r28
 1367               	/* prologue end (size=1) */
 1368 0294 C62F      		mov r28,r22
 1369 0296 8A30      		cpi r24,lo8(10)
 1370 0298 10F4      		brsh .L90
 155:lcd_cn.c      ****     w_lcd(dat,num1+0x30);
 1372               	.LM81:
 1373 029a 805D      		subi r24,lo8(-(48))
 1374 029c 03C0      		rjmp .L92
 1375               	.L90:
 156:lcd_cn.c      ****  else if(num1<16)
 1377               	.LM82:
 1378 029e 8031      		cpi r24,lo8(16)
 1379 02a0 08F4      		brsh .L92
 157:lcd_cn.c      ****     w_lcd(dat,num1+0x37);
 1381               	.LM83:
 1382 02a2 895C      		subi r24,lo8(-(55))
 1383               	.L92:
 158:lcd_cn.c      ****  else 
 159:lcd_cn.c      ****     w_lcd(dat,num1);
 1385               	.LM84:
 1386 02a4 682F      		mov r22,r24
 1387 02a6 81E0      		ldi r24,lo8(1)
 1388 02a8 0E94 0000 		call w_lcd
 160:lcd_cn.c      ****  if(num2<10)
 1390               	.LM85:
 1391 02ac CA30      		cpi r28,lo8(10)
 1392 02ae 10F4      		brsh .L94
 161:lcd_cn.c      ****    w_lcd(dat,num2+0x30);
 1394               	.LM86:
 1395 02b0 C05D      		subi r28,lo8(-(48))
 1396 02b2 03C0      		rjmp .L96
 1397               	.L94:
 162:lcd_cn.c      ****  else if(num2<16)
 1399               	.LM87:
 1400 02b4 C031      		cpi r28,lo8(16)
 1401 02b6 08F4      		brsh .L96
 163:lcd_cn.c      ****    w_lcd(dat,num2+0x37);
 1403               	.LM88:
 1404 02b8 C95C      		subi r28,lo8(-(55))
 1405               	.L96:
 164:lcd_cn.c      ****  else
 165:lcd_cn.c      ****    w_lcd(dat,num2);
 1407               	.LM89:
 1408 02ba 6C2F      		mov r22,r28
 1409 02bc 81E0      		ldi r24,lo8(1)
 1410 02be 0E94 0000 		call w_lcd
 1411               	/* epilogue: frame size=0 */
 1412 02c2 CF91      		pop r28
 1413 02c4 0895      		ret
 1414               	/* epilogue end (size=2) */
 1415               	/* function wn size 26 (23) */
 1417               	.Lscope8:
 1420               	.global	wc
 1422               	wc:
 166:lcd_cn.c      **** }		//*/
 167:lcd_cn.c      **** 
 168:lcd_cn.c      **** 
 169:lcd_cn.c      **** void wc(uchar *chan)		//writer charter
 170:lcd_cn.c      **** {
 1424               	.LM90:
 1425               	/* prologue: frame size=0 */
 1426 02c6 1F93      		push r17
 1427 02c8 CF93      		push r28
 1428 02ca DF93      		push r29
 1429               	/* prologue end (size=3) */
 1430 02cc EC01      		movw r28,r24
 171:lcd_cn.c      ****  uchar i;
 172:lcd_cn.c      ****  for(i=0;chan[i]!='\0';i++)
 1432               	.LM91:
 1433 02ce 10E0      		ldi r17,lo8(0)
 1434 02d0 8881      		ld r24,Y
 1435 02d2 8823      		tst r24
 1436 02d4 71F0      		breq .L104
 1437               	.L102:
 173:lcd_cn.c      ****     w_lcd(dat,chan[i]);
 1439               	.LM92:
 1440 02d6 FE01      		movw r30,r28
 1441 02d8 E10F      		add r30,r17
 1442 02da F11D      		adc r31,__zero_reg__
 1443 02dc 6081      		ld r22,Z
 1444 02de 81E0      		ldi r24,lo8(1)
 1445 02e0 0E94 0000 		call w_lcd
 1447               	.LM93:
 1448 02e4 1F5F      		subi r17,lo8(-(1))
 1449 02e6 FE01      		movw r30,r28
 1450 02e8 E10F      		add r30,r17
 1451 02ea F11D      		adc r31,__zero_reg__
 1452 02ec 8081      		ld r24,Z
 1453 02ee 8823      		tst r24
 1454 02f0 91F7      		brne .L102
 1455               	.L104:
 1456               	/* epilogue: frame size=0 */
 1457 02f2 DF91      		pop r29
 1458 02f4 CF91      		pop r28
 1459 02f6 1F91      		pop r17
 1460 02f8 0895      		ret
 1461               	/* epilogue end (size=4) */
 1462               	/* function wc size 26 (19) */
 1467               	.Lscope9:
 1470               	.global	wh
 1472               	wh:
 174:lcd_cn.c      **** }
 175:lcd_cn.c      **** 
 176:lcd_cn.c      **** void wh(uchar const *chan)	//write charter by look up table
 177:lcd_cn.c      **** {
 1474               	.LM94:
 1475               	/* prologue: frame size=0 */
 1476 02fa 1F93      		push r17
 1477 02fc CF93      		push r28
 1478 02fe DF93      		push r29
 1479               	/* prologue end (size=3) */
 1480 0300 EC01      		movw r28,r24
 1481               	.LBB7:
 178:lcd_cn.c      ****  uchar i;
 179:lcd_cn.c      ****  uchar ttp;
 180:lcd_cn.c      ****  ttp=pgm_read_byte(chan);
 1483               	.LM95:
 1484 0302 FC01      		movw r30,r24
 1485               	/* #APP */
 1486 0304 6491      		lpm r22, Z
 1487               		
 1488               	/* #NOAPP */
 1489               	.LBE7:
 181:lcd_cn.c      ****  for(i=1;ttp!='\0';i++)
 1491               	.LM96:
 1492 0306 11E0      		ldi r17,lo8(1)
 1493 0308 6623      		tst r22
 1494 030a 51F0      		breq .L111
 1495               	.L109:
 182:lcd_cn.c      ****   {
 183:lcd_cn.c      ****    w_lcd(dat,ttp);
 1497               	.LM97:
 1498 030c 81E0      		ldi r24,lo8(1)
 1499 030e 0E94 0000 		call w_lcd
 1500               	.LBB8:
 184:lcd_cn.c      ****    ttp=pgm_read_byte(chan+i);
 1502               	.LM98:
 1503 0312 FE01      		movw r30,r28
 1504 0314 E10F      		add r30,r17
 1505 0316 F11D      		adc r31,__zero_reg__
 1506               	/* #APP */
 1507 0318 6491      		lpm r22, Z
 1508               		
 1509               	/* #NOAPP */
 1510               	.LBE8:
 1512               	.LM99:
 1513 031a 1F5F      		subi r17,lo8(-(1))
 1514 031c 6623      		tst r22
 1515 031e B1F7      		brne .L109
 1516               	.L111:
 1517               	/* epilogue: frame size=0 */
 1518 0320 DF91      		pop r29
 1519 0322 CF91      		pop r28
 1520 0324 1F91      		pop r17
 1521 0326 0895      		ret
 1522               	/* epilogue end (size=4) */
 1523               	/* function wh size 29 (22) */
 1532               	.Lscope10:
 1538               	.global	wu
 1540               	wu:
 185:lcd_cn.c      ****   }
 186:lcd_cn.c      **** }
 187:lcd_cn.c      **** 
 188:lcd_cn.c      **** void wu (uchar const *ch0, uchar const *ch1, uchar const *ch2, uchar const *ch3)
 189:lcd_cn.c      **** { 
 1542               	.LM100:
 1543               	/* prologue: frame size=0 */
 1544 0328 AF92      		push r10
 1545 032a BF92      		push r11
 1546 032c CF92      		push r12
 1547 032e DF92      		push r13
 1548 0330 EF92      		push r14
 1549 0332 FF92      		push r15
 1550 0334 0F93      		push r16
 1551 0336 1F93      		push r17
 1552               	/* prologue end (size=8) */
 1553 0338 8C01      		movw r16,r24
 1554 033a 7B01      		movw r14,r22
 1555 033c 6A01      		movw r12,r20
 1556 033e 5901      		movw r10,r18
 190:lcd_cn.c      ****   clr(1);
 1558               	.LM101:
 1559 0340 81E0      		ldi r24,lo8(1)
 1560 0342 0E94 0000 		call clr
 191:lcd_cn.c      ****   set(1);
 1562               	.LM102:
 1563 0346 81E0      		ldi r24,lo8(1)
 1564 0348 0E94 0000 		call set
 192:lcd_cn.c      ****   go(0,0);
 1566               	.LM103:
 1567 034c 60E0      		ldi r22,lo8(0)
 1568 034e 862F      		mov r24,r22
 1569 0350 0E94 0000 		call go
 193:lcd_cn.c      ****   wh(ch0);		//write line 0
 1571               	.LM104:
 1572 0354 C801      		movw r24,r16
 1573 0356 0E94 0000 		call wh
 194:lcd_cn.c      ****   go(0,1);
 1575               	.LM105:
 1576 035a 61E0      		ldi r22,lo8(1)
 1577 035c 80E0      		ldi r24,lo8(0)
 1578 035e 0E94 0000 		call go
 195:lcd_cn.c      ****   wh(ch1);		//write line 1
 1580               	.LM106:
 1581 0362 C701      		movw r24,r14
 1582 0364 0E94 0000 		call wh
 196:lcd_cn.c      ****   go(0,2);
 1584               	.LM107:
 1585 0368 62E0      		ldi r22,lo8(2)
 1586 036a 80E0      		ldi r24,lo8(0)
 1587 036c 0E94 0000 		call go
 197:lcd_cn.c      ****   wh(ch2);
 1589               	.LM108:
 1590 0370 C601      		movw r24,r12
 1591 0372 0E94 0000 		call wh
 198:lcd_cn.c      ****   go(0,3);
 1593               	.LM109:
 1594 0376 63E0      		ldi r22,lo8(3)
 1595 0378 80E0      		ldi r24,lo8(0)
 1596 037a 0E94 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -