📄 gs.lss
字号:
clr(8);
b50: 88 e0 ldi r24, 0x08 ; 8
b52: 0e 94 f9 02 call 0x5f2 <clr>
for(i=0;i<15;i++)
b56: c0 e0 ldi r28, 0x00 ; 0
b58: 07 e6 ldi r16, 0x67 ; 103
b5a: 10 e0 ldi r17, 0x00 ; 0
{
tmp=RAND(15);
b5c: 8f e0 ldi r24, 0x0F ; 15
b5e: 0e 94 80 05 call 0xb00 <RAND>
b62: 98 2f mov r25, r24
for(j=0;j<i;)
b64: 20 e0 ldi r18, 0x00 ; 0
b66: 2c 17 cp r18, r28
b68: 48 f4 brcc .+18 ; 0xb7c <wash+0x38>
{
if(tmp==ss[j]) //数据重复, 重新生成
b6a: e2 2f mov r30, r18
b6c: ff 27 eor r31, r31
b6e: e9 59 subi r30, 0x99 ; 153
b70: ff 4f sbci r31, 0xFF ; 255
b72: 80 81 ld r24, Z
b74: 98 17 cp r25, r24
b76: 91 f3 breq .-28 ; 0xb5c <wash+0x18>
{
tmp=RAND(15);
j=0;
}
else
j++;
b78: 2f 5f subi r18, 0xFF ; 255
b7a: f5 cf rjmp .-22 ; 0xb66 <wash+0x22>
}
ss[i]=tmp;
b7c: f8 01 movw r30, r16
b7e: 91 93 st Z+, r25
b80: 8f 01 movw r16, r30
b82: cf 5f subi r28, 0xFF ; 255
b84: cf 30 cpi r28, 0x0F ; 15
b86: 50 f3 brcs .-44 ; 0xb5c <wash+0x18>
}
ss[15]=0xff;
b88: 8f ef ldi r24, 0xFF ; 255
b8a: 80 93 76 00 sts 0x0076, r24
b8e: cf 91 pop r28
b90: 1f 91 pop r17
b92: 0f 91 pop r16
b94: 08 95 ret
00000b96 <succ>:
}
void succ(void)
{
uchar i,j;
j=0;
b96: 20 e0 ldi r18, 0x00 ; 0
for(i=0;i<15;i++)
b98: 92 2f mov r25, r18
b9a: e7 e6 ldi r30, 0x67 ; 103
b9c: f0 e0 ldi r31, 0x00 ; 0
{
if(ss[i]==i)
b9e: 80 81 ld r24, Z
ba0: 89 17 cp r24, r25
ba2: 09 f4 brne .+2 ; 0xba6 <succ+0x10>
j++;
ba4: 2f 5f subi r18, 0xFF ; 255
ba6: 9f 5f subi r25, 0xFF ; 255
ba8: 31 96 adiw r30, 0x01 ; 1
baa: 9f 30 cpi r25, 0x0F ; 15
bac: c0 f3 brcs .-16 ; 0xb9e <succ+0x8>
}
if(j==15)
bae: 2f 30 cpi r18, 0x0F ; 15
bb0: 19 f4 brne .+6 ; 0xbb8 <succ+0x22>
su=1;
bb2: 81 e0 ldi r24, 0x01 ; 1
bb4: 80 93 65 00 sts 0x0065, r24
bb8: 08 95 ret
00000bba <main>:
} //*/
int main(void)
{
bba: cf e5 ldi r28, 0x5F ; 95
bbc: d8 e0 ldi r29, 0x08 ; 8
bbe: de bf out 0x3e, r29 ; 62
bc0: cd bf out 0x3d, r28 ; 61
uchar kv=0xff;
uchar su0=0;
bc2: 10 e0 ldi r17, 0x00 ; 0
uchar en=0;
bc4: 01 2f mov r16, r17
uchar x,y;
uchar tmp;
s_ini();
bc6: 0e 94 72 05 call 0xae4 <s_ini>
delay(10);
bca: 8a e0 ldi r24, 0x0A ; 10
bcc: 90 e0 ldi r25, 0x00 ; 0
bce: 0e 94 23 02 call 0x446 <delay>
lcd_ini();
bd2: 0e 94 42 03 call 0x684 <lcd_ini>
delay(10);
bd6: 8a e0 ldi r24, 0x0A ; 10
bd8: 90 e0 ldi r25, 0x00 ; 0
bda: 0e 94 23 02 call 0x446 <delay>
wash();
bde: 0e 94 a2 05 call 0xb44 <wash>
sorf=0;
be2: 10 93 66 00 sts 0x0066, r17
wsor();
be6: 0e 94 b7 04 call 0x96e <wsor>
wp();
bea: 0e 94 ee 03 call 0x7dc <wp>
while(1)
{
kv=key();
bee: 0e 94 2b 05 call 0xa56 <key>
bf2: c8 2f mov r28, r24
if(su)
bf4: 30 91 65 00 lds r19, 0x0065
bf8: 33 23 and r19, r19
bfa: b9 f0 breq .+46 ; 0xc2a <main+0x70>
{
if(su0==0)
bfc: 00 23 and r16, r16
bfe: 71 f4 brne .+28 ; 0xc1c <main+0x62>
{
su0=1;
c00: 01 e0 ldi r16, 0x01 ; 1
clr(8);
c02: 88 e0 ldi r24, 0x08 ; 8
c04: 0e 94 f9 02 call 0x5f2 <clr>
wu(CN1[0],CN1[1],CN1[2],CN1[3]);
c08: 27 ea ldi r18, 0xA7 ; 167
c0a: 32 e0 ldi r19, 0x02 ; 2
c0c: 46 e9 ldi r20, 0x96 ; 150
c0e: 52 e0 ldi r21, 0x02 ; 2
c10: 65 e8 ldi r22, 0x85 ; 133
c12: 72 e0 ldi r23, 0x02 ; 2
c14: 84 e7 ldi r24, 0x74 ; 116
c16: 92 e0 ldi r25, 0x02 ; 2
c18: 0e 94 b7 03 call 0x76e <wu>
}
if(kv==14)
c1c: ce 30 cpi r28, 0x0E ; 14
c1e: 39 f7 brne .-50 ; 0xbee <main+0x34>
{
wash();
c20: 0e 94 a2 05 call 0xb44 <wash>
wsor();
c24: 0e 94 b7 04 call 0x96e <wsor>
c28: e2 cf rjmp .-60 ; 0xbee <main+0x34>
}
}
else //
{
x=sor%4;
c2a: 90 91 64 00 lds r25, 0x0064
c2e: 93 70 andi r25, 0x03 ; 3
y=sor/4;
c30: 20 91 64 00 lds r18, 0x0064
c34: 26 95 lsr r18
c36: 26 95 lsr r18
if(kv==1&&x) //left
c38: 81 30 cpi r24, 0x01 ; 1
c3a: 89 f5 brne .+98 ; 0xc9e <main+0xe4>
c3c: 99 23 and r25, r25
c3e: 09 f4 brne .+2 ; 0xc42 <main+0x88>
c40: 0d c1 rjmp .+538 ; 0xe5c <main+0x2a2>
{
if(sorf&&ss[sor-1]==0xff) //允许左移条件
c42: 80 91 66 00 lds r24, 0x0066
c46: 88 23 and r24, r24
c48: 09 f1 breq .+66 ; 0xc8c <main+0xd2>
c4a: 80 91 64 00 lds r24, 0x0064
c4e: e8 2f mov r30, r24
c50: ff 27 eor r31, r31
c52: ea 59 subi r30, 0x9A ; 154
c54: ff 4f sbci r31, 0xFF ; 255
c56: 90 81 ld r25, Z
c58: 9f 3f cpi r25, 0xFF ; 255
c5a: c1 f4 brne .+48 ; 0xc8c <main+0xd2>
ss[sor-1]=ss[sor], ss[sor]=0xff,sorf=0,sor--,wsor();
c5c: 80 91 64 00 lds r24, 0x0064
c60: a8 2f mov r26, r24
c62: bb 27 eor r27, r27
c64: aa 59 subi r26, 0x9A ; 154
c66: bf 4f sbci r27, 0xFF ; 255
c68: 80 91 64 00 lds r24, 0x0064
c6c: e8 2f mov r30, r24
c6e: ff 27 eor r31, r31
c70: e9 59 subi r30, 0x99 ; 153
c72: ff 4f sbci r31, 0xFF ; 255
c74: 80 81 ld r24, Z
c76: 8c 93 st X, r24
c78: 80 91 64 00 lds r24, 0x0064
c7c: e8 2f mov r30, r24
c7e: ff 27 eor r31, r31
c80: e9 59 subi r30, 0x99 ; 153
c82: ff 4f sbci r31, 0xFF ; 255
c84: 90 83 st Z, r25
c86: 30 93 66 00 sts 0x0066, r19
c8a: 05 c0 rjmp .+10 ; 0xc96 <main+0xdc>
else if(sorf==0)
c8c: 80 91 66 00 lds r24, 0x0066
c90: 88 23 and r24, r24
c92: 09 f0 breq .+2 ; 0xc96 <main+0xdc>
c94: e3 c0 rjmp .+454 ; 0xe5c <main+0x2a2>
sor--,wsor();
c96: 80 91 64 00 lds r24, 0x0064
c9a: 81 50 subi r24, 0x01 ; 1
c9c: 2d c0 rjmp .+90 ; 0xcf8 <main+0x13e>
}
else if(kv==2&&y<3) //down
c9e: 82 30 cpi r24, 0x02 ; 2
ca0: a1 f5 brne .+104 ; 0xd0a <main+0x150>
ca2: 23 30 cpi r18, 0x03 ; 3
ca4: 08 f0 brcs .+2 ; 0xca8 <main+0xee>
ca6: da c0 rjmp .+436 ; 0xe5c <main+0x2a2>
{
if(sorf&&ss[sor+4]==0xff) //允许下移条件
ca8: 80 91 66 00 lds r24, 0x0066
cac: 88 23 and r24, r24
cae: 39 f1 breq .+78 ; 0xcfe <main+0x144>
cb0: 80 91 64 00 lds r24, 0x0064
cb4: e8 2f mov r30, r24
cb6: ff 27 eor r31, r31
cb8: e9 59 subi r30, 0x99 ; 153
cba: ff 4f sbci r31, 0xFF ; 255
cbc: 94 81 ldd r25, Z+4 ; 0x04
cbe: 9f 3f cpi r25, 0xFF ; 255
cc0: f1 f4 brne .+60 ; 0xcfe <main+0x144>
ss[sor+4]=ss[sor],ss[sor]=0xff,sorf=0,sor+=4,wsor();
cc2: 80 91 64 00 lds r24, 0x0064
cc6: a8 2f mov r26, r24
cc8: bb 27 eor r27, r27
cca: a9 59 subi r26, 0x99 ; 153
ccc: bf 4f sbci r27, 0xFF ; 255
cce: 80 91 64 00 lds r24, 0x0064
cd2: e8 2f mov r30, r24
cd4: ff 27 eor r31, r31
cd6: e9 59 subi r30, 0x99 ; 153
cd8: ff 4f sbci r31, 0xFF ; 255
cda: 80 81 ld r24, Z
cdc: fd 01 movw r30, r26
cde: 84 83 std Z+4, r24 ; 0x04
ce0: 80 91 64 00 lds r24, 0x0064
ce4: e8 2f mov r30, r24
ce6: ff 27 eor r31, r31
ce8: e9 59 subi r30, 0x99 ; 153
cea: ff 4f sbci r31, 0xFF ; 255
cec: 90 83 st Z, r25
cee: 30 93 66 00 sts 0x0066, r19
cf2: 80 91 64 00 lds r24, 0x0064
cf6: 8c 5f subi r24, 0xFC ; 252
cf8: 80 93 64 00 sts 0x0064, r24
cfc: ad c0 rjmp .+346 ; 0xe58 <main+0x29e>
else if(sorf==0)
cfe: 80 91 66 00 lds r24, 0x0066
d02: 88 23 and r24, r24
d04: 09 f0 breq .+2 ; 0xd08 <main+0x14e>
d06: aa c0 rjmp .+340 ; 0xe5c <main+0x2a2>
d08: f4 cf rjmp .-24 ; 0xcf2 <main+0x138>
sor+=4,wsor();
}
else if(kv==3&&x<3) //right
d0a: 83 30 cpi r24, 0x03 ; 3
d0c: 91 f5 brne .+100 ; 0xd72 <main+0x1b8>
d0e: 93 30 cpi r25, 0x03 ; 3
d10: 08 f0 brcs .+2 ; 0xd14 <main+0x15a>
d12: a4 c0 rjmp .+328 ; 0xe5c <main+0x2a2>
{
if(sorf&&ss[sor+1]==0xff) //允许右移条件
d14: 80 91 66 00 lds r24, 0x0066
d18: 88 23 and r24, r24
d1a: 11 f1 breq .+68 ; 0xd60 <main+0x1a6>
d1c: 80 91 64 00 lds r24, 0x0064
d20: e8 2f mov r30, r24
d22: ff 27 eor r31, r31
d24: e9 59 subi r30, 0x99 ; 153
d26: ff 4f sbci r31, 0xFF ; 255
d28: 91 81 ldd r25, Z+1 ; 0x01
d2a: 9f 3f cpi r25, 0xFF ; 255
d2c: c9 f4 brne .+50 ; 0xd60 <main+0x1a6>
ss[sor+1]=ss[sor],ss[sor]=0xff,sorf=0,sor++,wsor();
d2e: 80 91 64 00 lds r24, 0x0064
d32: a8 2f mov r26, r24
d34: bb 27 eor r27, r27
d36: a9 59 subi r26, 0x99 ; 153
d38: bf 4f sbci r27, 0xFF ; 255
d3a: 80 91 64 00 lds r24, 0x0064
d3e: e8 2f mov r30, r24
d40: ff 27 eor r31, r31
d42: e9 59 subi r30, 0x99 ; 153
d44: ff 4f sbci r31, 0xFF ; 255
d46: 80 81 ld r24, Z
d48: fd 01 movw r30, r26
d4a: 81 83 std Z+1, r24 ; 0x01
d4c: 80 91 64 00 lds r24, 0x0064
d50: e8 2f mov r30, r24
d52: ff 27 eor r31, r31
d54: e9 59 subi r30, 0x99 ; 153
d56: ff 4f sbci r31, 0xFF ; 255
d58: 90 83 st Z, r25
d5a: 30 93 66 00 sts 0x0066, r19
d5e: 05 c0 rjmp .+10 ; 0xd6a <main+0x1b0>
else if(sorf==0)
d60: 80 91 66 00 lds r24, 0x0066
d64: 88 23 and r24, r24
d66: 09 f0 breq .+2 ; 0xd6a <main+0x1b0>
d68: 79 c0 rjmp .+242 ; 0xe5c <main+0x2a2>
sor++,wsor();
d6a: 80 91 64 00 lds r24, 0x0064
d6e: 8f 5f subi r24, 0xFF ; 255
d70: c3 cf rjmp .-122 ; 0xcf8 <main+0x13e>
}
else if(kv==7&&y) //up
d72: 87 30 cpi r24, 0x07 ; 7
d74: 89 f5 brne .+98 ; 0xdd8 <main+0x21e>
d76: 22 23 and r18, r18
d78: 09 f4 brne .+2 ; 0xd7c <main+0x1c2>
d7a: 70 c0 rjmp .+224 ; 0xe5c <main+0x2a2>
{
if(sorf&&ss[sor-4]==0xff) //允许上移条析
d7c: 80 91 66 00 lds r24, 0x0066
d80: 88 23 and r24, r24
d82: 09 f1 breq .+66 ; 0xdc6 <main+0x20c>
d84: 80 91 64 00 lds r24, 0x0064
d88: e8 2f mov r30, r24
d8a: ff 27 eor r31, r31
d8c: ed 59 subi r30, 0x9D ; 157
d8e: ff 4f sbci r31, 0xFF ; 255
d90: 90 81 ld r25, Z
d92: 9f 3f cpi r25, 0xFF ; 255
d94: c1 f4 brne .+48 ; 0xdc6 <main+0x20c>
ss[sor-4]=ss[sor],ss[sor]=0xff,sorf=0,sor-=4,wsor();
d96: 80 91 64 00 lds r24, 0x0064
d9a: a8 2f mov r26, r24
d9c: bb 27 eor r27, r27
d9e: ad 59 subi r26, 0x9D ; 157
da0: bf 4f sbci r27, 0xFF ; 255
da2: 80 91 64 00 lds r24, 0x0064
da6: e8 2f mov r30, r24
da8: ff 27 eor r31, r31
daa: e9 59 subi r30, 0x99 ; 153
dac: ff 4f sbci r31, 0xFF ; 255
dae: 80 81 ld r24, Z
db0: 8c 93 st X, r24
db2: 80 91 64 00 lds r24, 0x0064
db6: e8 2f mov r30, r24
db8: ff 27 eor r31, r31
dba: e9 59 subi r30, 0x99 ; 153
dbc: ff 4f sbci r31, 0xFF ; 255
dbe: 90 83 st Z, r25
dc0: 30 93 66 00 sts 0x0066, r19
dc4: 05 c0 rjmp .+10 ; 0xdd0 <main+0x216>
else if(sorf==0)
dc6: 80 91 66 00 lds r24, 0x0066
dca: 88 23 and r24, r24
dcc: 09 f0 breq .+2 ; 0xdd0 <main+0x216>
dce: 46 c0 rjmp .+140 ; 0xe5c <main+0x2a2>
sor-=4,wsor();
dd0: 80 91 64 00 lds r24, 0x0064
dd4: 84 50 subi r24, 0x04 ; 4
dd6: 90 cf rjmp .-224 ; 0xcf8 <main+0x13e>
}
else if(kv==10) //选定
dd8: 8a 30 cpi r24, 0x0A ; 10
dda: d1 f5 brne .+116 ; 0xe50 <main+0x296>
{
if(sorf) //取消选定
ddc: 80 91 66 00 lds r24, 0x0066
de0: 88 23 and r24, r24
de2: 19 f0 breq .+6 ; 0xdea <main+0x230>
sorf=0,wsor();
de4: 30 93 66 00 sts 0x0066, r19
de8: 37 c0 rjmp .+110 ; 0xe58 <main+0x29e>
else
{
if(x&&ss[sor-1]==0xff) //可以左移
dea: 99 23 and r25, r25
dec: 49 f0 breq .+18 ; 0xe00 <main+0x246>
dee: 80 91 64 00 lds r24, 0x0064
df2: e8 2f mov r30, r24
df4: ff 27 eor r31, r31
df6: ea 59 subi r30, 0x9A ; 154
df8: ff 4f sbci r31, 0xFF ; 255
dfa: 80 81 ld r24, Z
dfc: 8f 3f cpi r24, 0xFF ; 255
dfe: 19 f1 breq .+70 ; 0xe46 <main+0x28c>
en=1;
else if(x<3&&ss[sor+1]==0xff) //可以右移
e00: 93 30 cpi r25, 0x03 ; 3
e02: 48 f4 brcc .+18 ; 0xe16 <main+0x25c>
e04: 80 91 64 00 lds r24, 0x0064
e08: e8 2f mov r30, r24
e0a: ff 27 eor r31, r31
e0c: e9 59 subi r30, 0x99 ; 153
e0e: ff 4f sbci r31, 0xFF ; 255
e10: 81 81 ldd r24, Z+1 ; 0x01
e12: 8f 3f cpi r24, 0xFF ; 255
e14: c1 f0 breq .+48 ; 0xe46 <main+0x28c>
en=1;
else if(y&&ss[sor-4]==0xff) //可以上移
e16: 22 23 and r18, r18
e18: 49 f0 breq .+18 ; 0xe2c <main+0x272>
e1a: 80 91 64 00 lds r24, 0x0064
e1e: e8 2f mov r30, r24
e20: ff 27 eor r31, r31
e22: ed 59 subi r30, 0x9D ; 157
e24: ff 4f sbci r31, 0xFF ; 255
e26: 80 81 ld r24, Z
e28: 8f 3f cpi r24, 0xFF ; 255
e2a: 69 f0 breq .+26 ; 0xe46 <main+0x28c>
en=1;
else if(y<3&&ss[sor+4]==0xff) //可以下移
e2c: 23 30 cpi r18, 0x03 ; 3
e2e: 48 f4 brcc .+18 ; 0xe42 <main+0x288>
e30: 80 91 64 00 lds r24, 0x0064
e34: e8 2f mov r30, r24
e36: ff 27 eor r31, r31
e38: e9 59 subi r30, 0x99 ; 153
e3a: ff 4f sbci r31, 0xFF ; 255
e3c: 84 81 ldd r24, Z+4 ; 0x04
e3e: 8f 3f cpi r24, 0xFF ; 255
e40: 11 f0 breq .+4 ; 0xe46 <main+0x28c>
en=1;
if(en)
e42: 11 23 and r17, r17
e44: 59 f0 breq .+22 ; 0xe5c <main+0x2a2>
{
en=0;
e46: 10 e0 ldi r17, 0x00 ; 0
sorf=1;
e48: 81 e0 ldi r24, 0x01 ; 1
e4a: 80 93 66 00 sts 0x0066, r24
e4e: 04 c0 rjmp .+8 ; 0xe58 <main+0x29e>
wsor();
}
}
}
else if(kv==14)
e50: 8e 30 cpi r24, 0x0E ; 14
e52: 21 f4 brne .+8 ; 0xe5c <main+0x2a2>
{
wash();
e54: 0e 94 a2 05 call 0xb44 <wash>
wsor();
e58: 0e 94 b7 04 call 0x96e <wsor>
}
//
succ(); //判断是否成
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -