📄 lcd5110.lst
字号:
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 + -