📄 lcd5110.lst
字号:
0676 1DF3 ADC R31,R3
0677 8020 LDD R2,Z+0
0678 2022 TST R2
0679 F419 BNE 0x067D
067A E021 LDI R18,1
067B E030 LDI R19,0
067C C002 RJMP 0x067F
067D 2722 CLR R18
067E 2733 CLR R19
067F 90200163 LDS R2,X
0681 E084 LDI R24,4
0682 9D82 MUL R24,R2
0683 0110 MOVW R2,R0
0684 E485 LDI R24,0x45
0685 E091 LDI R25,1
0686 0E28 ADD R2,R24
0687 1E39 ADC R3,R25
0688 91E00162 LDS R30,Y
068A 27FF CLR R31
068B 9631 ADIW R30,1
068C 0DE2 ADD R30,R2
068D 1DF3 ADC R31,R3
068E 8020 LDD R2,Z+0
068F 2022 TST R2
0690 F419 BNE 0x0694
0691 E001 LDI R16,1
0692 E010 LDI R17,0
0693 C002 RJMP 0x0696
0694 2700 CLR R16
0695 2711 CLR R17
0696 0119 MOVW R2,R18
0697 2220 AND R2,R16
0698 2231 AND R3,R17
0699 2022 TST R2
069A F421 BNE 0x069F
069B 2033 TST R3
069C F411 BNE 0x069F
069D 940C0F76 JMP 0xF76
(0298) {
(0299) X--;
069F 91800163 LDS R24,X
06A1 5081 SUBI R24,1
06A2 93800163 STS X,R24
(0300) disp_buffer[X][Y]=disp_buffer[X+2][Y];
06A4 2E28 MOV R2,R24
06A5 E084 LDI R24,4
06A6 9D82 MUL R24,R2
06A7 E581 LDI R24,0x51
06A8 E091 LDI R25,1
06A9 0110 MOVW R2,R0
06AA 0E28 ADD R2,R24
06AB 1E39 ADC R3,R25
06AC 91E00162 LDS R30,Y
06AE 27FF CLR R31
06AF 0DE2 ADD R30,R2
06B0 1DF3 ADC R31,R3
06B1 8020 LDD R2,Z+0
06B2 E489 LDI R24,0x49
06B3 E091 LDI R25,1
06B4 0120 MOVW R4,R0
06B5 0E48 ADD R4,R24
06B6 1E59 ADC R5,R25
06B7 91E00162 LDS R30,Y
06B9 27FF CLR R31
06BA 0DE4 ADD R30,R4
06BB 1DF5 ADC R31,R5
06BC 8220 STD Z+0,R2
(0301) disp_buffer[X][Y+1]=disp_buffer[X+2][Y+1];
06BD 91800162 LDS R24,Y
06BF 2799 CLR R25
06C0 9601 ADIW R24,1
06C1 011C MOVW R2,R24
06C2 90400163 LDS R4,X
06C4 E084 LDI R24,4
06C5 9D84 MUL R24,R4
06C6 E581 LDI R24,0x51
06C7 E091 LDI R25,1
06C8 0120 MOVW R4,R0
06C9 0E48 ADD R4,R24
06CA 1E59 ADC R5,R25
06CB 01F1 MOVW R30,R2
06CC 0DE4 ADD R30,R4
06CD 1DF5 ADC R31,R5
06CE 8040 LDD R4,Z+0
06CF E489 LDI R24,0x49
06D0 E091 LDI R25,1
06D1 0130 MOVW R6,R0
06D2 0E68 ADD R6,R24
06D3 1E79 ADC R7,R25
06D4 01F1 MOVW R30,R2
06D5 0DE6 ADD R30,R6
06D6 1DF7 ADC R31,R7
06D7 8240 STD Z+0,R4
(0302) disp_buffer[X+2][Y]=0x00;
06D8 90200163 LDS R2,X
06DA E084 LDI R24,4
06DB 9D82 MUL R24,R2
06DC 0110 MOVW R2,R0
06DD E581 LDI R24,0x51
06DE E091 LDI R25,1
06DF 0E28 ADD R2,R24
06E0 1E39 ADC R3,R25
06E1 91E00162 LDS R30,Y
06E3 27FF CLR R31
06E4 0DE2 ADD R30,R2
06E5 1DF3 ADC R31,R3
06E6 2422 CLR R2
06E7 8220 STD Z+0,R2
(0303) disp_buffer[X+2][Y+1]=0x00;
06E8 90200163 LDS R2,X
06EA E084 LDI R24,4
06EB 9D82 MUL R24,R2
06EC 0110 MOVW R2,R0
06ED E581 LDI R24,0x51
06EE E091 LDI R25,1
06EF 0E28 ADD R2,R24
06F0 1E39 ADC R3,R25
06F1 91E00162 LDS R30,Y
06F3 27FF CLR R31
06F4 9631 ADIW R30,1
06F5 0DE2 ADD R30,R2
06F6 1DF3 ADC R31,R3
06F7 2422 CLR R2
06F8 8220 STD Z+0,R2
(0304) NUM_YOUR++;
06F9 9180015E LDS R24,NUM_YOUR
06FB 9190015F LDS R25,NUM_YOUR+1
06FD 9601 ADIW R24,1
06FE 9390015F STS NUM_YOUR+1,R25
0700 9380015E STS NUM_YOUR,R24
(0305) }
(0306) }
(0307) }
(0308)
(0309) break;
0702 940C0F76 JMP 0xF76
(0310) case Right: //向右键被按下
(0311) if(key_last_value!=Enter) //判断是走局还是移动鼠标
0704 91800165 LDS R24,key_last_value
0706 3D88 CPI R24,0xD8
0707 F059 BEQ 0x0713
(0312) {
(0313) if(Y<3)Y++;
0708 91800162 LDS R24,Y
070A 3083 CPI R24,3
070B F010 BCS 0x070E
070C 940C0F76 JMP 0xF76
070E 5F8F SUBI R24,0xFF
070F 93800162 STS Y,R24
(0314) }
0711 940C0F76 JMP 0xF76
(0315)
(0316) else //走局操作
(0317) {
(0318) if((disp_buffer[X][Y]&0xF0)==0x00)return;
0713 90200163 LDS R2,X
0715 E084 LDI R24,4
0716 9D82 MUL R24,R2
0717 0110 MOVW R2,R0
0718 E489 LDI R24,0x49
0719 E091 LDI R25,1
071A 0E28 ADD R2,R24
071B 1E39 ADC R3,R25
071C 91E00162 LDS R30,Y
071E 27FF CLR R31
071F 0DE2 ADD R30,R2
0720 1DF3 ADC R31,R3
0721 8180 LDD R24,Z+0
0722 7F80 ANDI R24,0xF0
0723 F411 BNE 0x0726
0724 940C0F76 JMP 0xF76
(0319) else if((disp_buffer[X][Y]&0xF0)==0x10)//如果移动的是兵
0726 90200163 LDS R2,X
0728 E084 LDI R24,4
0729 9D82 MUL R24,R2
072A 0110 MOVW R2,R0
072B E489 LDI R24,0x49
072C E091 LDI R25,1
072D 0E28 ADD R2,R24
072E 1E39 ADC R3,R25
072F 91E00162 LDS R30,Y
0731 27FF CLR R31
0732 0DE2 ADD R30,R2
0733 1DF3 ADC R31,R3
0734 8180 LDD R24,Z+0
0735 7F80 ANDI R24,0xF0
0736 3180 CPI R24,0x10
0737 F009 BEQ 0x0739
0738 C050 RJMP 0x0789
(0320) {
(0321) if(Y<3)
0739 91800162 LDS R24,Y
073B 3083 CPI R24,3
073C F010 BCS 0x073F
073D 940C0F76 JMP 0xF76
(0322) if(disp_buffer[X][Y+1]==0x00)
073F 90200163 LDS R2,X
0741 E084 LDI R24,4
0742 9D82 MUL R24,R2
0743 0110 MOVW R2,R0
0744 E489 LDI R24,0x49
0745 E091 LDI R25,1
0746 0E28 ADD R2,R24
0747 1E39 ADC R3,R25
0748 91E00162 LDS R30,Y
074A 27FF CLR R31
074B 9631 ADIW R30,1
074C 0DE2 ADD R30,R2
074D 1DF3 ADC R31,R3
074E 8020 LDD R2,Z+0
074F 2022 TST R2
0750 F011 BEQ 0x0753
0751 940C0F76 JMP 0xF76
(0323) {
(0324) Y++;
0753 91800162 LDS R24,Y
0755 5F8F SUBI R24,0xFF
0756 93800162 STS Y,R24
(0325) disp_buffer[X][Y]=disp_buffer[X][Y-1];
0758 90200163 LDS R2,X
075A E084 LDI R24,4
075B 9D82 MUL R24,R2
075C 0110 MOVW R2,R0
075D E489 LDI R24,0x49
075E E091 LDI R25,1
075F 0E28 ADD R2,R24
0760 1E39 ADC R3,R25
0761 91E00162 LDS R30,Y
0763 27FF CLR R31
0764 9731 SBIW R30,1
0765 0DE2 ADD R30,R2
0766 1DF3 ADC R31,R3
0767 8040 LDD R4,Z+0
0768 91E00162 LDS R30,Y
076A 27FF CLR R31
076B 0DE2 ADD R30,R2
076C 1DF3 ADC R31,R3
076D 8240 STD Z+0,R4
(0326) disp_buffer[X][Y-1]=0x00;
076E 90200163 LDS R2,X
0770 E084 LDI R24,4
0771 9D82 MUL R24,R2
0772 0110 MOVW R2,R0
0773 E489 LDI R24,0x49
0774 E091 LDI R25,1
0775 0E28 ADD R2,R24
0776 1E39 ADC R3,R25
0777 91E00162 LDS R30,Y
0779 27FF CLR R31
077A 9731 SBIW R30,1
077B 0DE2 ADD R30,R2
077C 1DF3 ADC R31,R3
077D 2422 CLR R2
077E 8220 STD Z+0,R2
(0327) NUM_YOUR++;
077F 9180015E LDS R24,NUM_YOUR
0781 9190015F LDS R25,NUM_YOUR+1
0783 9601 ADIW R24,1
0784 9390015F STS NUM_YOUR+1,R25
0786 9380015E STS NUM_YOUR,R24
(0328) }
(0329) }
0788 C7ED RJMP 0x0F76
(0330) else if((disp_buffer[X][Y]&0xF0)==0x20)//如果移动的是竖将
0789 90200163 LDS R2,X
078B E084 LDI R24,4
078C 9D82 MUL R24,R2
078D 0110 MOVW R2,R0
078E E489 LDI R24,0x49
078F E091 LDI R25,1
0790 0E28 ADD R2,R24
0791 1E39 ADC R3,R25
0792 91E00162 LDS R30,Y
0794 27FF CLR R31
0795 0DE2 ADD R30,R2
0796 1DF3 ADC R31,R3
0797 8180 LDD R24,Z+0
0798 7F80 ANDI R24,0xF0
0799 3280 CPI R24,0x20
079A F009 BEQ 0x079C
079B C0C0 RJMP 0x085C
(0331) {
(0332) if(X>0)
079C 2422 CLR R2
079D 90300163 LDS R3,X
079F 1423 CP R2,R3
07A0 F500 BCC 0x07C1
(0333) if(disp_buffer[X][Y]==disp_buffer[X-1][Y])
07A1 2C23 MOV R2,R3
07A2 E084 LDI R24,4
07A3 9D82 MUL R24,R2
07A4 E485 LDI R24,0x45
07A5 E091 LDI R25,1
07A6 0110 MOVW R2,R0
07A7 0E28 ADD R2,R24
07A8 1E39 ADC R3,R25
07A9 91E00162 LDS R30,Y
07AB 27FF CLR R31
07AC 0DE2 ADD R30,R2
07AD 1DF3 ADC R31,R3
07AE 8020 LDD R2,Z+0
07AF E489 LDI R24,0x49
07B0 E091 LDI R25,1
07B1 0120 MOVW R4,R0
07B2 0E48 ADD R4,R24
07B3 1E59 ADC R5,R25
07B4 91E00162 LDS R30,Y
07B6 27FF CLR R31
07B7 0DE4 ADD R30,R4
07B8 1DF5 ADC R31,R5
07B9 8030 LDD R3,Z+0
07BA 1432 CP R3,R2
07BB F429 BNE 0x07C1
(0334) X--;
07BC 91800163 LDS R24,X
07BE 5081 SUBI R24,1
07BF 93800163 STS X,R24
(0335) if(Y<3)
07C1 91800162 LDS R24,Y
07C3 3083 CPI R24,3
07C4 F008 BCS 0x07C6
07C5 C7B0 RJMP 0x0F76
(0336) if((disp_buffer[X][Y+1]==0x00)&(disp_buffer[X+1][Y+1]==0x00))
07C6 90200163 LDS R2,X
07C8 E084 LDI R24,4
07C9 9D82 MUL R24,R2
07CA 0110 MOVW R2,R0
07CB E489 LDI R24,0x49
07CC E091 LDI R25,1
07CD 0E28 ADD R2,R24
07CE 1E39 ADC R3,R25
07CF 91E00162 LDS R30,Y
07D1 27FF CLR R31
07D2 9631 ADIW R30,1
07D3 0DE2 ADD R30,R2
07D4 1DF3 ADC R31,R3
07D5 8020 LDD R2,Z+0
07D6 2022 TST R2
07D7 F419 BNE 0x07DB
07D8 E021 LDI R18,1
07D9 E030 LDI R19,0
07DA C002 RJMP 0x07DD
07DB 2722 CLR R18
07DC 2733 CLR R19
07DD 90200163 LDS R2,X
07DF E084 LDI R24,4
07E0 9D82 MUL R24,R2
07E1 0110 MOVW R2,R0
07E2 E48D LDI R24,0x4D
07E3 E091 LDI R25,1
07E4 0E28 ADD R2,R24
07E5 1E39 ADC R3,R25
07E6 91E00162 LDS R30,Y
07E8 27FF CLR R31
07E9 9631 ADIW R30,1
07EA 0DE2 ADD R30,R2
07EB 1DF3 ADC R31,R3
07EC 8020 LDD R2,Z+0
07ED 2022 TST R2
07EE F419 BNE 0x07F2
07EF E001 LDI R16,1
07F0 E010 LDI R17,0
07F1 C002 RJMP 0x07F4
07F2 2700 CLR R16
07F3 2711 CLR R17
07F4 0119 MOVW R2,R18
07F5 2220 AND R2,R16
07F6 2231 AND R3,R17
07F7 2022 TST R2
07F8 F419 BNE 0x07FC
07F9 2033 TST R3
07FA F409 BNE 0x07FC
07FB C77A RJMP 0x0F76
(0337) {
(0338) Y++;
07FC 91800162 LDS R24,Y
07FE 5F8F SUBI R24,0xFF
07FF 93800162 STS Y,R24
(0339) disp_buffer[X][Y]=disp_buffer[X][Y-1];
0801 90200163 LDS R2,X
0803 E084 LDI R24,4
0804 9D82 MUL R24,R2
0805 0110 MOVW R2,R0
0806 E489 LDI R24,0x49
0807 E091 LDI R25,1
0808 0E28 ADD R2,R24
0809 1E39 ADC R3,R25
080A 91E00162 LDS R30,Y
080C 27FF CLR R31
080D 9731 SBIW R30,1
080E 0DE2 ADD R30,R2
080F 1DF3 ADC R31,R3
0810 8040 LDD R4,Z+0
0811 91E00162 LDS R30,Y
0813 27FF CLR R31
0814 0DE2 ADD R30,R2
0815 1DF3 ADC R31,R3
0816 8240 STD Z+0,R4
(0340) disp_buffer[X+1][Y]=disp_buffer[X+1][Y-1];
0817 90200163 LDS R2,X
0819 E084 LDI R24,4
081A 9D82 MUL R24,R2
081B E48D LDI R24,0x4D
081C E091 LDI R25,1
081D 0110 MOVW R2,R0
081E 0E28 ADD R2,R24
081F 1E39 ADC R3,R25
0820 91E00162 LDS R30,Y
0822 27FF CLR R31
0823 9731 SBIW R30,1
0824 0DE2 ADD R30,R2
0825 1DF3 ADC R31,R3
0826 8020 LDD R2,Z+0
0827 0120 MOVW R4,R0
0828 0E48 ADD R4,R24
0829 1E59 ADC R5,R25
082A 91E00162 LDS R30,Y
082C 27FF CLR R31
082D 0DE4 ADD R30,R4
082E 1DF5 ADC R31,R5
082F 8220 STD Z+0,R2
(0341) disp_buffer[X][Y-1]=0x00;
0830 90200163 LDS R2,X
0832 E084 LDI R24,4
0833 9D82 MUL R24,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -