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

📄 main.lst

📁 基于AVR单片机(ATMega64)的辞别力拼图游戏
💻 LST
📖 第 1 页 / 共 5 页
字号:
 906 008c 07C0      		rjmp .L27
 907               	.L24:
  63:lcd_cn.c      ****  else if(sway==0x04)
 909               	.LM25:
 910 008e 8430      		cpi r24,lo8(4)
 911 0090 61F4      		brne .L17
  64:lcd_cn.c      ****     w_lcd(com,0x32), w_lcd(com,0x0d), w_lcd(com,0x07); //cursor flash, move ledt wehn writing
 913               	.LM26:
 914 0092 62E3      		ldi r22,lo8(50)
 915 0094 80E0      		ldi r24,lo8(0)
 916 0096 0E94 0000 		call w_lcd
 917 009a 6DE0      		ldi r22,lo8(13)
 918               	.L27:
 919 009c 80E0      		ldi r24,lo8(0)
 920 009e 0E94 0000 		call w_lcd
 921 00a2 67E0      		ldi r22,lo8(7)
 922               	.L28:
 923 00a4 80E0      		ldi r24,lo8(0)
 924               	.L29:
 925 00a6 0E94 0000 		call w_lcd
 926               	.L17:
 927               	/* epilogue: frame size=0 */
 928 00aa CF91      		pop r28
 929 00ac 0895      		ret
 930               	/* epilogue end (size=2) */
 931               	/* function set size 54 (51) */
 933               	.Lscope2:
 939               	.global	rv
 941               	rv:
  65:lcd_cn.c      **** // else if(sway==0x40)  w_lcd(com,0x34), w_lcd(com,0x34);		//not display pitures
  66:lcd_cn.c      **** // else if(sway==0x41)  w_lcd(com,0x36), w_lcd(com,0x36);		//display pitures
  67:lcd_cn.c      **** }
  68:lcd_cn.c      **** 
  69:lcd_cn.c      **** /*-----------------------------------------------*/
  70:lcd_cn.c      **** //当type=3,在x0,y0处反白显示16*xl*16.
  71:lcd_cn.c      **** //当type=2,在x0,y0处前半反白显示8*xl*16.
  72:lcd_cn.c      **** //当type=1时,在x0,y0处后半反白显示8*xl*16.
  73:lcd_cn.c      **** //当type=时,不反白显示
  74:lcd_cn.c      **** //xl为反白显示的长度
  75:lcd_cn.c      **** void rv(uchar type,uchar xx0,uchar yy0,uchar xl)
  76:lcd_cn.c      **** { uchar i,j;
 943               	.LM27:
 944               	/* prologue: frame size=0 */
 945 00ae CF92      		push r12
 946 00b0 DF92      		push r13
 947 00b2 EF92      		push r14
 948 00b4 FF92      		push r15
 949 00b6 0F93      		push r16
 950 00b8 1F93      		push r17
 951 00ba CF93      		push r28
 952               	/* prologue end (size=7) */
 953 00bc 962F      		mov r25,r22
 954 00be D22E      		mov r13,r18
  77:lcd_cn.c      ****   uchar data1,data2,x0,y0;
  78:lcd_cn.c      ****   if(type==0) 
 956               	.LM28:
 957 00c0 8823      		tst r24
 958 00c2 11F4      		brne .L32
  79:lcd_cn.c      ****      data1=0,data2=0;
 960               	.LM29:
 961 00c4 082F      		mov r16,r24
 962 00c6 0EC0      		rjmp .L53
 963               	.L32:
  80:lcd_cn.c      ****   else if(type==1)
 965               	.LM30:
 966 00c8 8130      		cpi r24,lo8(1)
 967 00ca 19F4      		brne .L34
  81:lcd_cn.c      ****      data1=0,data2=0xff;
 969               	.LM31:
 970 00cc CC24      		clr r12
 971 00ce 0FEF      		ldi r16,lo8(-1)
 972 00d0 0AC0      		rjmp .L33
 973               	.L34:
  82:lcd_cn.c      ****   else if(type==2)
 975               	.LM32:
 976 00d2 8230      		cpi r24,lo8(2)
 977 00d4 21F4      		brne .L36
  83:lcd_cn.c      ****      data1=0xff,data2=0;
 979               	.LM33:
 980 00d6 FFEF      		ldi r31,lo8(-1)
 981 00d8 CF2E      		mov r12,r31
 982 00da 00E0      		ldi r16,lo8(0)
 983 00dc 04C0      		rjmp .L33
 984               	.L36:
  84:lcd_cn.c      ****   else if(type==3)
 986               	.LM34:
 987 00de 8330      		cpi r24,lo8(3)
 988 00e0 11F4      		brne .L33
  85:lcd_cn.c      ****      data1=0xff,data2=0xff;
 990               	.LM35:
 991 00e2 0FEF      		ldi r16,lo8(-1)
 992               	.L53:
 993 00e4 C02E      		mov r12,r16
 994               	.L33:
 995 00e6 642F      		mov r22,r20
 996 00e8 7727      		clr r23
  86:lcd_cn.c      ****   if(yy0>1)
 998               	.LM36:
 999 00ea 4230      		cpi r20,lo8(2)
 1000 00ec 58F0      		brlo .L39
  87:lcd_cn.c      ****      y0=(yy0-2)*16+0x80,x0=xx0+0x88;
 1002               	.LM37:
 1003 00ee E4E0      		ldi r30,4
 1004 00f0 660F      	1:	lsl r22
 1005 00f2 771F      		rol r23
 1006 00f4 EA95      		dec r30
 1007 00f6 E1F7      		brne 1b
 1008 00f8 50E6      		ldi r21,lo8(96)
 1009 00fa E52E      		mov r14,r21
 1010 00fc E60E      		add r14,r22
 1011 00fe 48E8      		ldi r20,lo8(-120)
 1012 0100 F42E      		mov r15,r20
 1013 0102 0AC0      		rjmp .L54
 1014               	.L39:
  88:lcd_cn.c      ****   else
  89:lcd_cn.c      ****      y0=yy0*16+0x80,x0=xx0+0x80;
 1016               	.LM38:
 1017 0104 34E0      		ldi r19,4
 1018 0106 660F      	1:	lsl r22
 1019 0108 771F      		rol r23
 1020 010a 3A95      		dec r19
 1021 010c E1F7      		brne 1b
 1022 010e 20E8      		ldi r18,lo8(-128)
 1023 0110 E22E      		mov r14,r18
 1024 0112 E60E      		add r14,r22
 1025 0114 80E8      		ldi r24,lo8(-128)
 1026 0116 F82E      		mov r15,r24
 1027               	.L54:
 1028 0118 F90E      		add r15,r25
  90:lcd_cn.c      ****   for(j=0;j<16;j++)
 1030               	.LM39:
 1031 011a 10E0      		ldi r17,lo8(0)
 1032               	.L48:
  91:lcd_cn.c      ****   { 
  92:lcd_cn.c      ****    for(i=0;i<xl;i++)
 1034               	.LM40:
 1035 011c C0E0      		ldi r28,lo8(0)
 1036               	.L55:
 1037 011e CD15      		cp r28,r13
 1038 0120 E8F4      		brsh .L52
  93:lcd_cn.c      ****     { 
  94:lcd_cn.c      **** 	  w_lcd (com,0x34);
 1040               	.LM41:
 1041 0122 64E3      		ldi r22,lo8(52)
 1042 0124 80E0      		ldi r24,lo8(0)
 1043 0126 0E94 0000 		call w_lcd
  95:lcd_cn.c      ****       w_lcd (com,y0+j);
 1045               	.LM42:
 1046 012a 6E2D      		mov r22,r14
 1047 012c 610F      		add r22,r17
 1048 012e 80E0      		ldi r24,lo8(0)
 1049 0130 0E94 0000 		call w_lcd
  96:lcd_cn.c      ****       w_lcd (com,x0+i);
 1051               	.LM43:
 1052 0134 8F2D      		mov r24,r15
 1053 0136 8C0F      		add r24,r28
 1054 0138 682F      		mov r22,r24
 1055 013a 80E0      		ldi r24,lo8(0)
 1056 013c 0E94 0000 		call w_lcd
  97:lcd_cn.c      ****       w_lcd (com,0x30);
 1058               	.LM44:
 1059 0140 60E3      		ldi r22,lo8(48)
 1060 0142 80E0      		ldi r24,lo8(0)
 1061 0144 0E94 0000 		call w_lcd
  98:lcd_cn.c      ****       w_lcd (dat,data1);
 1063               	.LM45:
 1064 0148 6C2D      		mov r22,r12
 1065 014a 81E0      		ldi r24,lo8(1)
 1066 014c 0E94 0000 		call w_lcd
  99:lcd_cn.c      ****       w_lcd (dat,data2);
 1068               	.LM46:
 1069 0150 602F      		mov r22,r16
 1070 0152 81E0      		ldi r24,lo8(1)
 1071 0154 0E94 0000 		call w_lcd
 1073               	.LM47:
 1074 0158 CF5F      		subi r28,lo8(-(1))
 1075 015a E1CF      		rjmp .L55
 1076               	.L52:
 1078               	.LM48:
 1079 015c 1F5F      		subi r17,lo8(-(1))
 1080 015e 1031      		cpi r17,lo8(16)
 1081 0160 E8F2      		brlo .L48
 100:lcd_cn.c      ****     }
 101:lcd_cn.c      ****   }
 102:lcd_cn.c      ****   w_lcd (com,0x36);
 1083               	.LM49:
 1084 0162 66E3      		ldi r22,lo8(54)
 1085 0164 80E0      		ldi r24,lo8(0)
 1086 0166 0E94 0000 		call w_lcd
 1087               	/* epilogue: frame size=0 */
 1088 016a CF91      		pop r28
 1089 016c 1F91      		pop r17
 1090 016e 0F91      		pop r16
 1091 0170 FF90      		pop r15
 1092 0172 EF90      		pop r14
 1093 0174 DF90      		pop r13
 1094 0176 CF90      		pop r12
 1095 0178 0895      		ret
 1096               	/* epilogue end (size=8) */
 1097               	/* function rv size 102 (87) */
 1107               	.Lscope3:
 1109               	.global	rvn
 1111               	rvn:
 103:lcd_cn.c      **** }
 104:lcd_cn.c      **** 
 105:lcd_cn.c      **** void rvn(void)
 106:lcd_cn.c      **** {
 1113               	.LM50:
 1114               	/* prologue: frame size=0 */
 1115               	/* prologue end (size=0) */
 107:lcd_cn.c      ****  rv(0,0,0,8);
 1117               	.LM51:
 1118 017a 28E0      		ldi r18,lo8(8)
 1119 017c 40E0      		ldi r20,lo8(0)
 1120 017e 642F      		mov r22,r20
 1121 0180 842F      		mov r24,r20
 1122 0182 0E94 0000 		call rv
 108:lcd_cn.c      ****  rv(0,0,1,8);
 1124               	.LM52:
 1125 0186 28E0      		ldi r18,lo8(8)
 1126 0188 41E0      		ldi r20,lo8(1)
 1127 018a 60E0      		ldi r22,lo8(0)
 1128 018c 862F      		mov r24,r22
 1129 018e 0E94 0000 		call rv
 109:lcd_cn.c      ****  rv(0,0,2,8);
 1131               	.LM53:
 1132 0192 28E0      		ldi r18,lo8(8)
 1133 0194 42E0      		ldi r20,lo8(2)
 1134 0196 60E0      		ldi r22,lo8(0)
 1135 0198 862F      		mov r24,r22
 1136 019a 0E94 0000 		call rv
 110:lcd_cn.c      ****  rv(0,0,3,8);
 1138               	.LM54:
 1139 019e 28E0      		ldi r18,lo8(8)
 1140 01a0 43E0      		ldi r20,lo8(3)
 1141 01a2 60E0      		ldi r22,lo8(0)
 1142 01a4 862F      		mov r24,r22
 1143 01a6 0E94 0000 		call rv
 1144               	/* epilogue: frame size=0 */
 1145 01aa 0895      		ret
 1146               	/* epilogue end (size=1) */
 1147               	/* function rvn size 25 (24) */
 1149               	.Lscope4:
 1152               	.global	clr
 1154               	clr:
 111:lcd_cn.c      **** }
 112:lcd_cn.c      **** 
 113:lcd_cn.c      **** void clr(uchar ty)		
 114:lcd_cn.c      **** {
 1156               	.LM55:
 1157               	/* prologue: frame size=0 */
 1158 01ac FF92      		push r15
 1159 01ae 0F93      		push r16
 1160 01b0 1F93      		push r17
 1161 01b2 CF93      		push r28
 1162 01b4 DF93      		push r29
 1163               	/* prologue end (size=5) */
 1164 01b6 F82E      		mov r15,r24
 115:lcd_cn.c      ****  uint i,j;
 116:lcd_cn.c      ****  if(ty==1||ty==3)		//clean charter
 1166               	.LM56:
 1167 01b8 21E0      		ldi r18,lo8(1)
 1168 01ba 8217      		cp r24,r18
 1169 01bc 19F0      		breq .L59
 1171               	.LM57:
 1172 01be 83E0      		ldi r24,lo8(3)
 1173 01c0 F816      		cp r15,r24
 1174 01c2 41F4      		brne .L58
 1175               	.L59:
 117:lcd_cn.c      ****     w_lcd(com,0x32), w_lcd(com,0x01);
 1177               	.LM58:
 1178 01c4 62E3      		ldi r22,lo8(50)
 1179 01c6 80E0      		ldi r24,lo8(0)
 1180 01c8 0E94 0000 		call w_lcd
 1181 01cc 61E0      		ldi r22,lo8(1)
 1182 01ce 80E0      		ldi r24,lo8(0)
 1183 01d0 0E94 0000 		call w_lcd
 1184               	.L58:
 118:lcd_cn.c      ****  if(ty==2||ty==3)		//clean piture
 1186               	.LM59:
 1187 01d4 8F2D      		mov r24,r15
 1188 01d6 8250      		subi r24,lo8(-(-2))
 1189 01d8 8230      		cpi r24,lo8(2)
 1190 01da F0F4      		brsh .L60
 119:lcd_cn.c      ****    {
 120:lcd_cn.c      ****     w_lcd(com,0x34);
 1192               	.LM60:
 1193 01dc 64E3      		ldi r22,lo8(52)
 1194 01de 80E0      		ldi r24,lo8(0)
 1195 01e0 0E94 0000 		call w_lcd
 121:lcd_cn.c      ****     for(j=0;j<32;j++)		//draw the down half piture
 1197               	.LM61:
 1198 01e4 00E0      		ldi r16,lo8(0)
 1199 01e6 10E0      		ldi r17,hi8(0)
 1200               	.L68:
 122:lcd_cn.c      ****       {
 123:lcd_cn.c      **** 	   w_lcd(com,0x80+j);		//Y address
 1202               	.LM62:
 1203 01e8 802F      		mov r24,r16
 1204 01ea 8058      		subi r24,lo8(-(-128))
 1205 01ec 682F      		mov r22,r24
 1206 01ee 80E0      		ldi r24,lo8(0)
 1207 01f0 0E94 0000 		call w_lcd
 124:lcd_cn.c      ****        w_lcd(com,0x80);			//X address
 1209               	.LM63:
 1210 01f4 60E8      		ldi r22,lo8(-128)
 1211 01f6 80E0      		ldi r24,lo8(0)
 1212 01f8 0E94 0000 		call w_lcd
 1213 01fc CFE1      		ldi r28,lo8(31)
 1214 01fe D0E0      		ldi r29,hi8(31)
 1215               	.L67:
 125:lcd_cn.c      ****        for(i=0;i<32;i++)
 126:lcd_cn.c      ****           w_lcd(dat,0);
 1217               	.LM64:
 1218 0200 60E0      		ldi r22,lo8(0)
 1219 0202 81E0      		ldi r24,lo8(1)
 1220 0204 0E94 0000 		call w_lcd
 1222               	.LM65:
 1223 0208 2197      		sbiw r28,1
 1224 020a D7FF      		sbrs r29,7
 1225 020c F9CF      		rjmp .L67
 1227               	.LM66:
 1228 020e 0F5F      		subi r16,lo8(-(1))
 1229 0210 1F4F      		sbci r17,hi8(-(1))
 1230 0212 0032      		cpi r16,32
 1231 0214 1105      		cpc r17,__zero_reg__
 1232 0216 40F3      		brlo .L68
 1233               	.L60:
 127:lcd_cn.c      ****       }
 128:lcd_cn.c      **** 	}
 129:lcd_cn.c      ****  if(ty==8)		//clr dis buffer
 1235               	.LM67:
 1236 0218 28E0      		ldi r18,lo8(8)
 1237 021a F216      		cp r15,r18
 1238 021c 51F4      		brne .L57
 1239 021e 80E0      		ldi r24,lo8(disbuf)
 1240 0220 90E0      		ldi r25,hi8(disbuf)
 1241 0222 FC01      		movw r30,r24
 1242               	.L73:
 130:lcd_cn.c      ****    {
 131:lcd_cn.c      ****     for(i=0;i<1024;i++)

⌨️ 快捷键说明

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