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

📄 lcd5110.lst

📁 meg16 的所有功能实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0834 0110      MOVW	R2,R0
    0835 E489      LDI	R24,0x49
    0836 E091      LDI	R25,1
    0837 0E28      ADD	R2,R24
    0838 1E39      ADC	R3,R25
    0839 91E00162  LDS	R30,Y
    083B 27FF      CLR	R31
    083C 9731      SBIW	R30,1
    083D 0DE2      ADD	R30,R2
    083E 1DF3      ADC	R31,R3
    083F 2422      CLR	R2
    0840 8220      STD	Z+0,R2
(0342) 			 disp_buffer[X+1][Y-1]=0x00;
    0841 90200163  LDS	R2,X
    0843 E084      LDI	R24,4
    0844 9D82      MUL	R24,R2
    0845 0110      MOVW	R2,R0
    0846 E48D      LDI	R24,0x4D
    0847 E091      LDI	R25,1
    0848 0E28      ADD	R2,R24
    0849 1E39      ADC	R3,R25
    084A 91E00162  LDS	R30,Y
    084C 27FF      CLR	R31
    084D 9731      SBIW	R30,1
    084E 0DE2      ADD	R30,R2
    084F 1DF3      ADC	R31,R3
    0850 2422      CLR	R2
    0851 8220      STD	Z+0,R2
(0343) 			 NUM_YOUR++;
    0852 9180015E  LDS	R24,NUM_YOUR
    0854 9190015F  LDS	R25,NUM_YOUR+1
    0856 9601      ADIW	R24,1
    0857 9390015F  STS	NUM_YOUR+1,R25
    0859 9380015E  STS	NUM_YOUR,R24
(0344) 			 }
(0345) 		   }
    085B C71A      RJMP	0x0F76
(0346) 		   else if((disp_buffer[X][Y]&0xF0)==0x30)//如果移动的是横将
    085C 90200163  LDS	R2,X
    085E E084      LDI	R24,4
    085F 9D82      MUL	R24,R2
    0860 0110      MOVW	R2,R0
    0861 E489      LDI	R24,0x49
    0862 E091      LDI	R25,1
    0863 0E28      ADD	R2,R24
    0864 1E39      ADC	R3,R25
    0865 91E00162  LDS	R30,Y
    0867 27FF      CLR	R31
    0868 0DE2      ADD	R30,R2
    0869 1DF3      ADC	R31,R3
    086A 8180      LDD	R24,Z+0
    086B 7F80      ANDI	R24,0xF0
    086C 3380      CPI	R24,0x30
    086D F009      BEQ	0x086F
    086E C071      RJMP	0x08E0
(0347) 		   {
(0348) 		   if(Y>0)
    086F 2422      CLR	R2
    0870 90300162  LDS	R3,Y
    0872 1423      CP	R2,R3
    0873 F4E8      BCC	0x0891
(0349) 		   if(disp_buffer[X][Y]==disp_buffer[X][Y-1])
    0874 90200163  LDS	R2,X
    0876 E084      LDI	R24,4
    0877 9D82      MUL	R24,R2
    0878 0110      MOVW	R2,R0
    0879 E489      LDI	R24,0x49
    087A E091      LDI	R25,1
    087B 0E28      ADD	R2,R24
    087C 1E39      ADC	R3,R25
    087D 91E00162  LDS	R30,Y
    087F 27FF      CLR	R31
    0880 9731      SBIW	R30,1
    0881 0DE2      ADD	R30,R2
    0882 1DF3      ADC	R31,R3
    0883 8040      LDD	R4,Z+0
    0884 91E00162  LDS	R30,Y
    0886 27FF      CLR	R31
    0887 0DE2      ADD	R30,R2
    0888 1DF3      ADC	R31,R3
    0889 8020      LDD	R2,Z+0
    088A 1424      CP	R2,R4
    088B F429      BNE	0x0891
(0350) 		      Y--;
    088C 91800162  LDS	R24,Y
    088E 5081      SUBI	R24,1
    088F 93800162  STS	Y,R24
(0351) 		   if(Y<2)
    0891 91800162  LDS	R24,Y
    0893 3082      CPI	R24,2
    0894 F008      BCS	0x0896
    0895 C6E0      RJMP	0x0F76
(0352) 		   if(disp_buffer[X][Y+2]==0x00)
    0896 90200163  LDS	R2,X
    0898 E084      LDI	R24,4
    0899 9D82      MUL	R24,R2
    089A 0110      MOVW	R2,R0
    089B E489      LDI	R24,0x49
    089C E091      LDI	R25,1
    089D 0E28      ADD	R2,R24
    089E 1E39      ADC	R3,R25
    089F 91E00162  LDS	R30,Y
    08A1 27FF      CLR	R31
    08A2 9632      ADIW	R30,2
    08A3 0DE2      ADD	R30,R2
    08A4 1DF3      ADC	R31,R3
    08A5 8020      LDD	R2,Z+0
    08A6 2022      TST	R2
    08A7 F009      BEQ	0x08A9
    08A8 C6CD      RJMP	0x0F76
(0353) 		     {
(0354) 			 Y++;
    08A9 91800162  LDS	R24,Y
    08AB 5F8F      SUBI	R24,0xFF
    08AC 93800162  STS	Y,R24
(0355) 			 disp_buffer[X][Y+1]=disp_buffer[X][Y-1];
    08AE 90200163  LDS	R2,X
    08B0 E084      LDI	R24,4
    08B1 9D82      MUL	R24,R2
    08B2 0110      MOVW	R2,R0
    08B3 E489      LDI	R24,0x49
    08B4 E091      LDI	R25,1
    08B5 0E28      ADD	R2,R24
    08B6 1E39      ADC	R3,R25
    08B7 91E00162  LDS	R30,Y
    08B9 27FF      CLR	R31
    08BA 9731      SBIW	R30,1
    08BB 0DE2      ADD	R30,R2
    08BC 1DF3      ADC	R31,R3
    08BD 8040      LDD	R4,Z+0
    08BE 91E00162  LDS	R30,Y
    08C0 27FF      CLR	R31
    08C1 9631      ADIW	R30,1
    08C2 0DE2      ADD	R30,R2
    08C3 1DF3      ADC	R31,R3
    08C4 8240      STD	Z+0,R4
(0356) 			 disp_buffer[X][Y-1]=0x00;
    08C5 90200163  LDS	R2,X
    08C7 E084      LDI	R24,4
    08C8 9D82      MUL	R24,R2
    08C9 0110      MOVW	R2,R0
    08CA E489      LDI	R24,0x49
    08CB E091      LDI	R25,1
    08CC 0E28      ADD	R2,R24
    08CD 1E39      ADC	R3,R25
    08CE 91E00162  LDS	R30,Y
    08D0 27FF      CLR	R31
    08D1 9731      SBIW	R30,1
    08D2 0DE2      ADD	R30,R2
    08D3 1DF3      ADC	R31,R3
    08D4 2422      CLR	R2
    08D5 8220      STD	Z+0,R2
(0357) 			 NUM_YOUR++;
    08D6 9180015E  LDS	R24,NUM_YOUR
    08D8 9190015F  LDS	R25,NUM_YOUR+1
    08DA 9601      ADIW	R24,1
    08DB 9390015F  STS	NUM_YOUR+1,R25
    08DD 9380015E  STS	NUM_YOUR,R24
(0358) 			 }
(0359) 		   }
    08DF C696      RJMP	0x0F76
(0360) 		   else if((disp_buffer[X][Y]&0xF0)==0x40)//如果移动的是曹操
    08E0 90200163  LDS	R2,X
    08E2 E084      LDI	R24,4
    08E3 9D82      MUL	R24,R2
    08E4 0110      MOVW	R2,R0
    08E5 E489      LDI	R24,0x49
    08E6 E091      LDI	R25,1
    08E7 0E28      ADD	R2,R24
    08E8 1E39      ADC	R3,R25
    08E9 91E00162  LDS	R30,Y
    08EB 27FF      CLR	R31
    08EC 0DE2      ADD	R30,R2
    08ED 1DF3      ADC	R31,R3
    08EE 8180      LDD	R24,Z+0
    08EF 7F80      ANDI	R24,0xF0
    08F0 3480      CPI	R24,0x40
    08F1 F009      BEQ	0x08F3
    08F2 C683      RJMP	0x0F76
(0361) 		   {
(0362) 		   if(X>0)
    08F3 2422      CLR	R2
    08F4 90300163  LDS	R3,X
    08F6 1423      CP	R2,R3
    08F7 F500      BCC	0x0918
(0363) 		   if(disp_buffer[X][Y]==disp_buffer[X-1][Y])
    08F8 2C23      MOV	R2,R3
    08F9 E084      LDI	R24,4
    08FA 9D82      MUL	R24,R2
    08FB E485      LDI	R24,0x45
    08FC E091      LDI	R25,1
    08FD 0110      MOVW	R2,R0
    08FE 0E28      ADD	R2,R24
    08FF 1E39      ADC	R3,R25
    0900 91E00162  LDS	R30,Y
    0902 27FF      CLR	R31
    0903 0DE2      ADD	R30,R2
    0904 1DF3      ADC	R31,R3
    0905 8020      LDD	R2,Z+0
    0906 E489      LDI	R24,0x49
    0907 E091      LDI	R25,1
    0908 0120      MOVW	R4,R0
    0909 0E48      ADD	R4,R24
    090A 1E59      ADC	R5,R25
    090B 91E00162  LDS	R30,Y
    090D 27FF      CLR	R31
    090E 0DE4      ADD	R30,R4
    090F 1DF5      ADC	R31,R5
    0910 8030      LDD	R3,Z+0
    0911 1432      CP	R3,R2
    0912 F429      BNE	0x0918
(0364) 		      X--;
    0913 91800163  LDS	R24,X
    0915 5081      SUBI	R24,1
    0916 93800163  STS	X,R24
(0365) 		   if(Y>0)
    0918 2422      CLR	R2
    0919 90300162  LDS	R3,Y
    091B 1423      CP	R2,R3
    091C F4E8      BCC	0x093A
(0366) 		   if(disp_buffer[X][Y]==disp_buffer[X][Y-1])
    091D 90200163  LDS	R2,X
    091F E084      LDI	R24,4
    0920 9D82      MUL	R24,R2
    0921 0110      MOVW	R2,R0
    0922 E489      LDI	R24,0x49
    0923 E091      LDI	R25,1
    0924 0E28      ADD	R2,R24
    0925 1E39      ADC	R3,R25
    0926 91E00162  LDS	R30,Y
    0928 27FF      CLR	R31
    0929 9731      SBIW	R30,1
    092A 0DE2      ADD	R30,R2
    092B 1DF3      ADC	R31,R3
    092C 8040      LDD	R4,Z+0
    092D 91E00162  LDS	R30,Y
    092F 27FF      CLR	R31
    0930 0DE2      ADD	R30,R2
    0931 1DF3      ADC	R31,R3
    0932 8020      LDD	R2,Z+0
    0933 1424      CP	R2,R4
    0934 F429      BNE	0x093A
(0367) 		      Y--;
    0935 91800162  LDS	R24,Y
    0937 5081      SUBI	R24,1
    0938 93800162  STS	Y,R24
(0368) 		   if(Y<2)
    093A 91800162  LDS	R24,Y
    093C 3082      CPI	R24,2
    093D F008      BCS	0x093F
    093E C637      RJMP	0x0F76
(0369) 		   if((disp_buffer[X][Y+2]==0x00)&(disp_buffer[X+1][Y+2]==0x00))
    093F 90200163  LDS	R2,X
    0941 E084      LDI	R24,4
    0942 9D82      MUL	R24,R2
    0943 0110      MOVW	R2,R0
    0944 E489      LDI	R24,0x49
    0945 E091      LDI	R25,1
    0946 0E28      ADD	R2,R24
    0947 1E39      ADC	R3,R25
    0948 91E00162  LDS	R30,Y
    094A 27FF      CLR	R31
    094B 9632      ADIW	R30,2
    094C 0DE2      ADD	R30,R2
    094D 1DF3      ADC	R31,R3
    094E 8020      LDD	R2,Z+0
    094F 2022      TST	R2
    0950 F419      BNE	0x0954
    0951 E021      LDI	R18,1
    0952 E030      LDI	R19,0
    0953 C002      RJMP	0x0956
    0954 2722      CLR	R18
    0955 2733      CLR	R19
    0956 90200163  LDS	R2,X
    0958 E084      LDI	R24,4
    0959 9D82      MUL	R24,R2
    095A 0110      MOVW	R2,R0
    095B E48D      LDI	R24,0x4D
    095C E091      LDI	R25,1
    095D 0E28      ADD	R2,R24
    095E 1E39      ADC	R3,R25
    095F 91E00162  LDS	R30,Y
    0961 27FF      CLR	R31
    0962 9632      ADIW	R30,2
    0963 0DE2      ADD	R30,R2
    0964 1DF3      ADC	R31,R3
    0965 8020      LDD	R2,Z+0
    0966 2022      TST	R2
    0967 F419      BNE	0x096B
    0968 E001      LDI	R16,1
    0969 E010      LDI	R17,0
    096A C002      RJMP	0x096D
    096B 2700      CLR	R16
    096C 2711      CLR	R17
    096D 0119      MOVW	R2,R18
    096E 2220      AND	R2,R16
    096F 2231      AND	R3,R17
    0970 2022      TST	R2
    0971 F419      BNE	0x0975
    0972 2033      TST	R3
    0973 F409      BNE	0x0975
    0974 C601      RJMP	0x0F76
(0370) 		     {
(0371) 			 Y++;
    0975 91800162  LDS	R24,Y
    0977 5F8F      SUBI	R24,0xFF
    0978 93800162  STS	Y,R24
(0372) 			 disp_buffer[X][Y+1]=disp_buffer[X][Y-1];
    097A 90200163  LDS	R2,X
    097C E084      LDI	R24,4
    097D 9D82      MUL	R24,R2
    097E 0110      MOVW	R2,R0
    097F E489      LDI	R24,0x49
    0980 E091      LDI	R25,1
    0981 0E28      ADD	R2,R24
    0982 1E39      ADC	R3,R25
    0983 91E00162  LDS	R30,Y
    0985 27FF      CLR	R31
    0986 9731      SBIW	R30,1
    0987 0DE2      ADD	R30,R2
    0988 1DF3      ADC	R31,R3
    0989 8040      LDD	R4,Z+0
    098A 91E00162  LDS	R30,Y
    098C 27FF      CLR	R31
    098D 9631      ADIW	R30,1
    098E 0DE2      ADD	R30,R2
    098F 1DF3      ADC	R31,R3
    0990 8240      STD	Z+0,R4
(0373) 			 disp_buffer[X+1][Y+1]=disp_buffer[X+1][Y-1];
    0991 90200163  LDS	R2,X
    0993 E084      LDI	R24,4
    0994 9D82      MUL	R24,R2
    0995 E48D      LDI	R24,0x4D
    0996 E091      LDI	R25,1
    0997 0110      MOVW	R2,R0
    0998 0E28      ADD	R2,R24
    0999 1E39      ADC	R3,R25
    099A 91E00162  LDS	R30,Y
    099C 27FF      CLR	R31
    099D 9731      SBIW	R30,1
    099E 0DE2      ADD	R30,R2
    099F 1DF3      ADC	R31,R3
    09A0 8020      LDD	R2,Z+0
    09A1 0120      MOVW	R4,R0
    09A2 0E48      ADD	R4,R24
    09A3 1E59      ADC	R5,R25
    09A4 91E00162  LDS	R30,Y
    09A6 27FF      CLR	R31
    09A7 9631      ADIW	R30,1
    09A8 0DE4      ADD	R30,R4
    09A9 1DF5      ADC	R31,R5
    09AA 8220      STD	Z+0,R2
(0374) 			 disp_buffer[X][Y-1]=0x00;
    09AB 90200163  LDS	R2,X
    09AD E084      LDI	R24,4
    09AE 9D82      MUL	R24,R2
    09AF 0110      MOVW	R2,R0
    09B0 E489      LDI	R24,0x49
    09B1 E091      LDI	R25,1
    09B2 0E28      ADD	R2,R24
    09B3 1E39      ADC	R3,R25
    09B4 91E00162  LDS	R30,Y
    09B6 27FF      CLR	R31
    09B7 9731      SBIW	R30,1
    09B8 0DE2      ADD	R30,R2
    09B9 1DF3      ADC	R31,R3
    09BA 2422      CLR	R2
    09BB 8220      STD	Z+0,R2
(0375) 			 disp_buffer[X+1][Y-1]=0x00;
    09BC 90200163  LDS	R2,X
    09BE E084      LDI	R24,4
    09BF 9D82      MUL	R24,R2
    09C0 0110      MOVW	R2,R0
    09C1 E48D      LDI	R24,0x4D
    09C2 E091      LDI	R25,1
    09C3 0E28      ADD	R2,R24
    09C4 1E39      ADC	R3,R25
    09C5 91E00162  LDS	R30,Y
    09C7 27FF      CLR	R31
    09C8 9731      SBIW	R30,1
    09C9 0DE2      ADD	R30,R2
    09CA 1DF3      ADC	R31,R3
    09CB 2422      CLR	R2
    09CC 8220      STD	Z+0,R2
(0376) 			 NUM_YOUR++;
    09CD 9180015E  LDS	R24,NUM_YOUR
    09CF 9190015F  LDS	R25,NUM_YOUR+1
    09D1 9601      ADIW	R24,1
    09D2 9390015F  STS	NUM_YOUR+1,R25
    09D4 9380015E  STS	NUM_YOUR,R24
(0377) 			 }
(0378) 		   }
(0379) 
(0380) 		   }
(0381) 		   
(0382) 		 break;
    09D6 C59F      RJMP	0x0F76
(0383)    case Enter: 			//确定键被按下
(0384) 		 
(0385) 		 break;
(0386)    case Left:  			//向左键被按下
(0387)    		 if(key_last_value!=Enter) //判断是走局还是移动鼠标
    09D7 91800165  LDS	R24,key_last_value
    09D9 3D88      CPI	R24,0xD8
    09DA F059      BEQ	0x09E6
(0388) 		   {
(0389) 		   if(Y>0)Y--;
    09DB 2422      CLR	R2
    09DC 90300162  LDS	R3,Y
    09DE 1423      CP	R2,R3
    09DF F008      BCS	0x09E1
    09E0 C595      RJMP	0x0F76
    09E1 2D83      MOV	R24,R3
    09E2 5081      SUBI	R24,1
    09E3 93800162  STS	Y,R24
(0390) 		   }
    09E5 C590      RJMP	0x0F76
(0391) 		   
(0392) 		 else		  			   //走局操作
(0393) 		   {
(0394) 		   if((disp_buffer[X][Y]&0xF0)==0x00)return

⌨️ 快捷键说明

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