📄 left.lst
字号:
0181 1DF3 ADC R31,R3
0182 8020 LDD R2,Z+0
0183 8031 LDD R3,Z+1
0184 01FE MOVW R30,R28
0185 57E0 SUBI R30,0x70
0186 4EFC SBCI R31,0xEC
0187 8231 STD Z+1,R3
0188 8220 STD Z+0,R2
0189 01C1 MOVW R24,R2
018A 3082 CPI R24,2
018B E0E0 LDI R30,0
018C 079E CPC R25,R30
018D F029 BEQ 0x0193
018E 3084 CPI R24,4
018F E0E0 LDI R30,0
0190 079E CPC R25,R30
0191 F041 BEQ 0x019A
0192 C00A RJMP 0x019D
(0124) {
(0125) case 2:
(0126) {
(0127) start_X=j;
0193 016B MOVW R12,R22
(0128) start_Y=k;
0194 01FE MOVW R30,R28
0195 57E4 SUBI R30,0x74
0196 4EFC SBCI R31,0xEC
0197 82F1 STD Z+1,R15
0198 82E0 STD Z+0,R14
(0129) break;
0199 C003 RJMP 0x019D
(0130) }
(0131)
(0132) case 4:
(0133)
(0134) n++;
019A 01C5 MOVW R24,R10
019B 9601 ADIW R24,1
019C 015C MOVW R10,R24
019D 01C7 MOVW R24,R14
019E 9601 ADIW R24,1
019F 017C MOVW R14,R24
01A0 01FE MOVW R30,R28
01A1 56EC SUBI R30,0x6C
01A2 4EFC SBCI R31,0xEC
01A3 8180 LDD R24,Z+0
01A4 8191 LDD R25,Z+1
01A5 9601 ADIW R24,1
01A6 16E8 CP R14,R24
01A7 06F9 CPC R15,R25
01A8 F40C BGE 0x01AA
01A9 CFC6 RJMP 0x0170
01AA 5F6F SUBI R22,0xFF
01AB 4F7F SBCI R23,0xFF
01AC 01FE MOVW R30,R28
01AD 57E2 SUBI R30,0x72
01AE 4EFC SBCI R31,0xEC
01AF 8180 LDD R24,Z+0
01B0 8191 LDD R25,Z+1
01B1 9601 ADIW R24,1
01B2 1768 CP R22,R24
01B3 0779 CPC R23,R25
01B4 F40C BGE 0x01B6
01B5 CFB7 RJMP 0x016D
(0135) break;
(0136) }
(0137) }
(0138) };
(0139)
(0140) judgewalk(start_X, start_Y,4,a);
01B6 01CE MOVW R24,R28
01B7 9604 ADIW R24,4
01B8 839B STD Y+3,R25
01B9 838A STD Y+2,R24
01BA E084 LDI R24,4
01BB E090 LDI R25,0
01BC 8399 STD Y+1,R25
01BD 8388 STD Y+0,R24
01BE 01FE MOVW R30,R28
01BF 57E4 SUBI R30,0x74
01C0 4EFC SBCI R31,0xEC
01C1 8120 LDD R18,Z+0
01C2 8131 LDD R19,Z+1
01C3 0186 MOVW R16,R12
01C4 DEE9 RCALL _judgewalk
01C5 C059 RJMP 0x021F
(0141)
(0142)
(0143) //左手法则
(0144) //else
(0145) //右手法则
(0146)
(0147)
(0148) while(sm<2*n)
(0149) {
(0150) x1=q|x1;
01C6 01FE MOVW R30,R28
01C7 56E8 SUBI R30,0x68
01C8 4EFC SBCI R31,0xEC
01C9 8000 LDD R0,Z+0
01CA 8011 LDD R1,Z+1
01CB 01FE MOVW R30,R28
01CC 56EA SUBI R30,0x6A
01CD 4EFC SBCI R31,0xEC
01CE 8100 LDD R16,Z+0
01CF 8111 LDD R17,Z+1
01D0 2A00 OR R0,R16
01D1 2A11 OR R1,R17
01D2 01FE MOVW R30,R28
01D3 56E8 SUBI R30,0x68
01D4 4EFC SBCI R31,0xEC
01D5 8211 STD Z+1,R1
01D6 8200 STD Z+0,R0
(0151) y1=q|y1;
01D7 01FE MOVW R30,R28
01D8 56E6 SUBI R30,0x66
01D9 4EFC SBCI R31,0xEC
01DA 8000 LDD R0,Z+0
01DB 8011 LDD R1,Z+1
01DC 01FE MOVW R30,R28
01DD 56EA SUBI R30,0x6A
01DE 4EFC SBCI R31,0xEC
01DF 8100 LDD R16,Z+0
01E0 8111 LDD R17,Z+1
01E1 2A00 OR R0,R16
01E2 2A11 OR R1,R17
01E3 01FE MOVW R30,R28
01E4 56E6 SUBI R30,0x66
01E5 4EFC SBCI R31,0xEC
01E6 8211 STD Z+1,R1
01E7 8200 STD Z+0,R0
(0152) addstack(q);
01E8 01FE MOVW R30,R28
01E9 56EA SUBI R30,0x6A
01EA 4EFC SBCI R31,0xEC
01EB 8100 LDD R16,Z+0
01EC 8111 LDD R17,Z+1
01ED DEA1 RCALL _addstack
(0153) if(sm%2)
01EE E022 LDI R18,2
01EF E030 LDI R19,0
01F0 018A MOVW R16,R20
01F1 940E0288 CALL mod16s
01F3 3000 CPI R16,0
01F4 0701 CPC R16,R17
01F5 F0A1 BEQ 0x020A
(0154) {
(0155) judgewalk(x1, y1,5,a);
01F6 01CE MOVW R24,R28
01F7 9604 ADIW R24,4
01F8 839B STD Y+3,R25
01F9 838A STD Y+2,R24
01FA E085 LDI R24,5
01FB E090 LDI R25,0
01FC 8399 STD Y+1,R25
01FD 8388 STD Y+0,R24
01FE 01FE MOVW R30,R28
01FF 56E6 SUBI R30,0x66
0200 4EFC SBCI R31,0xEC
0201 8120 LDD R18,Z+0
0202 8131 LDD R19,Z+1
0203 01FE MOVW R30,R28
0204 56E8 SUBI R30,0x68
0205 4EFC SBCI R31,0xEC
0206 8100 LDD R16,Z+0
0207 8111 LDD R17,Z+1
0208 DEA5 RCALL _judgewalk
(0156) }
0209 C013 RJMP 0x021D
(0157) else
(0158) {
(0159) judgewalk(x1, y1,4,a);
020A 01CE MOVW R24,R28
020B 9604 ADIW R24,4
020C 839B STD Y+3,R25
020D 838A STD Y+2,R24
020E E084 LDI R24,4
020F E090 LDI R25,0
0210 8399 STD Y+1,R25
0211 8388 STD Y+0,R24
0212 01FE MOVW R30,R28
0213 56E6 SUBI R30,0x66
0214 4EFC SBCI R31,0xEC
0215 8120 LDD R18,Z+0
0216 8131 LDD R19,Z+1
0217 01FE MOVW R30,R28
0218 56E8 SUBI R30,0x68
0219 4EFC SBCI R31,0xEC
021A 8100 LDD R16,Z+0
021B 8111 LDD R17,Z+1
021C DE91 RCALL _judgewalk
(0160) };
(0161) sm++;
021D 5F4F SUBI R20,0xFF
021E 4F5F SBCI R21,0xFF
021F E002 LDI R16,2
0220 E010 LDI R17,0
0221 0195 MOVW R18,R10
0222 940E02C2 CALL empy16s
0224 1740 CP R20,R16
0225 0751 CPC R21,R17
0226 F40C BGE 0x0228
0227 CF9E RJMP 0x01C6
(0162) };
(0163) if(sm=2*n)
0228 E002 LDI R16,2
0229 E010 LDI R17,0
022A 0195 MOVW R18,R10
022B 940E02C2 CALL empy16s
022D 01A8 MOVW R20,R16
022E 3040 CPI R20,0
022F 0745 CPC R20,R21
0230 F031 BEQ 0x0237
(0164) addstack(q);
FILE: <library>
0231 01FE MOVW R30,R28
0232 56EA SUBI R30,0x6A
0233 4EFC SBCI R31,0xEC
0234 8100 LDD R16,Z+0
0235 8111 LDD R17,Z+1
0236 DE58 RCALL _addstack
0237 96EF ADIW R28,0x3F
0238 96EF ADIW R28,0x3F
0239 96EF ADIW R28,0x3F
023A 96EF ADIW R28,0x3F
023B 96EF ADIW R28,0x3F
023C 96EF ADIW R28,0x3F
023D 96EF ADIW R28,0x3F
023E 96EF ADIW R28,0x3F
023F 96EF ADIW R28,0x3F
0240 96EF ADIW R28,0x3F
0241 96EF ADIW R28,0x3F
0242 96EF ADIW R28,0x3F
0243 96EF ADIW R28,0x3F
0244 96EF ADIW R28,0x3F
0245 96EF ADIW R28,0x3F
0246 96EF ADIW R28,0x3F
0247 96EF ADIW R28,0x3F
0248 96EF ADIW R28,0x3F
0249 96EF ADIW R28,0x3F
024A 96EF ADIW R28,0x3F
024B 96EF ADIW R28,0x3F
024C 96EF ADIW R28,0x3F
024D 96EF ADIW R28,0x3F
024E 96EF ADIW R28,0x3F
024F 96EF ADIW R28,0x3F
0250 96EF ADIW R28,0x3F
0251 96EF ADIW R28,0x3F
0252 96EF ADIW R28,0x3F
0253 96EF ADIW R28,0x3F
0254 96EF ADIW R28,0x3F
0255 96EF ADIW R28,0x3F
0256 96EF ADIW R28,0x3F
0257 96EF ADIW R28,0x3F
0258 96EF ADIW R28,0x3F
0259 96EF ADIW R28,0x3F
025A 96EF ADIW R28,0x3F
025B 96EF ADIW R28,0x3F
025C 96EF ADIW R28,0x3F
025D 96EF ADIW R28,0x3F
025E 96EF ADIW R28,0x3F
025F 96EF ADIW R28,0x3F
0260 96EF ADIW R28,0x3F
0261 96EF ADIW R28,0x3F
0262 96EF ADIW R28,0x3F
0263 96EF ADIW R28,0x3F
0264 96EF ADIW R28,0x3F
0265 96EF ADIW R28,0x3F
0266 96EF ADIW R28,0x3F
0267 96EF ADIW R28,0x3F
0268 96EF ADIW R28,0x3F
0269 96EF ADIW R28,0x3F
026A 96EF ADIW R28,0x3F
026B 96EF ADIW R28,0x3F
026C 96EF ADIW R28,0x3F
026D 96EF ADIW R28,0x3F
026E 96EF ADIW R28,0x3F
026F 96EF ADIW R28,0x3F
0270 96EF ADIW R28,0x3F
0271 96EF ADIW R28,0x3F
0272 96EF ADIW R28,0x3F
0273 96EF ADIW R28,0x3F
0274 96EF ADIW R28,0x3F
0275 96EF ADIW R28,0x3F
0276 96EF ADIW R28,0x3F
0277 96EF ADIW R28,0x3F
0278 96EF ADIW R28,0x3F
0279 96EF ADIW R28,0x3F
027A 96EF ADIW R28,0x3F
027B 96EF ADIW R28,0x3F
027C 96EF ADIW R28,0x3F
027D 96EF ADIW R28,0x3F
027E 96EF ADIW R28,0x3F
027F 96EF ADIW R28,0x3F
0280 96EF ADIW R28,0x3F
0281 96EF ADIW R28,0x3F
0282 96EF ADIW R28,0x3F
0283 96EF ADIW R28,0x3F
0284 96EF ADIW R28,0x3F
0285 96EF ADIW R28,0x3F
0286 96AB ADIW R28,0x2B
0287 9508 RET
mod16s:
0288 9468 BSET 6
0289 92DA ST R13,-Y
028A 2ED1 MOV R13,R17
028B C004 RJMP 0x0290
div16s:
028C 94E8 BCLR 6
028D 92DA ST R13,-Y
028E 2ED1 MOV R13,R17
028F 26D3 EOR R13,R19
0290 FF17 SBRS R17,7
0291 C004 RJMP 0x0296
0292 9510 COM R17
0293 9500 COM R16
0294 5F0F SUBI R16,0xFF
0295 4F1F SBCI R17,0xFF
0296 FF37 SBRS R19,7
0297 C004 RJMP 0x029C
0298 9530 COM R19
0299 9520 COM R18
029A 5F2F SUBI R18,0xFF
029B 4F3F SBCI R19,0xFF
029C 940E02A9 CALL xdiv16u
029E FED7 SBRS R13,7
029F C004 RJMP 0x02A4
02A0 9510 COM R17
02A1 9500 COM R16
02A2 5F0F SUBI R16,0xFF
02A3 4F1F SBCI R17,0xFF
02A4 90D9 LD R13,Y+
02A5 9508 RET
mod16u:
02A6 9468 BSET 6
02A7 C001 RJMP xdiv16u
div16u:
02A8 94E8 BCLR 6
xdiv16u:
02A9 92EA ST R14,-Y
02AA 92FA ST R15,-Y
02AB 938A ST R24,-Y
02AC 24EE CLR R14
02AD 24FF CLR R15
02AE E180 LDI R24,0x10
02AF 0F00 LSL R16
02B0 1F11 ROL R17
02B1 1CEE ROL R14
02B2 1CFF ROL R15
02B3 16E2 CP R14,R18
02B4 06F3 CPC R15,R19
02B5 F018 BCS 0x02B9
02B6 1AE2 SUB R14,R18
02B7 0AF3 SBC R15,R19
02B8 9503 INC R16
02B9 958A DEC R24
02BA F7A1 BNE 0x02AF
02BB F416 BRTC 0x02BE
02BC 2D0E MOV R16,R14
02BD 2D1F MOV R17,R15
02BE 9189 LD R24,Y+
02BF 90F9 LD R15,Y+
02C0 90E9 LD R14,Y+
02C1 9508 RET
empy16s:
02C2 920A ST R0,-Y
02C3 921A ST R1,-Y
02C4 938A ST R24,-Y
02C5 939A ST R25,-Y
02C6 9F02 MUL R16,R18
02C7 01C0 MOVW R24,R0
02C8 9F12 MUL R17,R18
02C9 0D90 ADD R25,R0
02CA 9F03 MUL R16,R19
02CB 0D90 ADD R25,R0
02CC 018C MOVW R16,R24
02CD 9199 LD R25,Y+
02CE 9189 LD R24,Y+
02CF 9019 LD R1,Y+
02D0 9009 LD R0,Y+
02D1 9508 RET
pop_gset3:
02D2 E0E4 LDI R30,4
02D3 940C02E7 JMP pop
pop_gset4:
02D5 E0E8 LDI R30,0x8
02D6 940C02E7 JMP pop
pop_gset5:
02D8 27EE CLR R30
02D9 940C02E7 JMP pop
push_gset5:
02DB 92FA ST R15,-Y
02DC 92EA ST R14,-Y
push_gset4:
02DD 92DA ST R13,-Y
02DE 92CA ST R12,-Y
push_gset3:
02DF 92BA ST R11,-Y
02E0 92AA ST R10,-Y
push_gset2:
02E1 937A ST R23,-Y
02E2 936A ST R22,-Y
push_gset1:
02E3 935A ST R21,-Y
02E4 934A ST R20,-Y
02E5 9508 RET
pop_gset1:
02E6 E0E1 LDI R30,1
pop:
02E7 9149 LD R20,Y+
02E8 9159 LD R21,Y+
02E9 FDE0 SBRC R30,0
02EA 9508 RET
02EB 9169 LD R22,Y+
02EC 9179 LD R23,Y+
02ED FDE1 SBRC R30,1
02EE 9508 RET
02EF 90A9 LD R10,Y+
02F0 90B9 LD R11,Y+
02F1 FDE2 SBRC R30,2
02F2 9508 RET
02F3 90C9 LD R12,Y+
02F4 90D9 LD R13,Y+
02F5 FDE3 SBRC R30,3
02F6 9508 RET
02F7 90E9 LD R14,Y+
02F8 90F9 LD R15,Y+
02F9 9508 RET
mpy16s:
02FA 920A ST R0,-Y
02FB 921A ST R1,-Y
02FC 2400 CLR R0
02FD 2411 CLR R1
02FE 3000 CPI R16,0
02FF 0701 CPC R16,R17
0300 F041 BEQ 0x0309
0301 9516 LSR R17
0302 9507 ROR R16
0303 F410 BCC 0x0306
0304 0E02 ADD R0,R18
0305 1E13 ADC R1,R19
0306 0F22 LSL R18
0307 1F33 ROL R19
0308 CFF5 RJMP 0x02FE
0309 2D00 MOV R16,R0
030A 2D11 MOV R17,R1
030B 9019 LD R1,Y+
030C 9009 LD R0,Y+
030D 9508 RET
_srand:
030E 93100101 STS 0x101,R17
0310 93000100 STS 0x100,R16
0312 9508 RET
_rand:
0313 91200100 LDS R18,0x100
0315 91300101 LDS R19,0x101
0317 E60D LDI R16,0x6D
0318 E41E LDI R17,0x4E
0319 940E02FA CALL mpy16s
031B 2F80 MOV R24,R16
031C 2F91 MOV R25,R17
031D 5C87 SUBI R24,0xC7
031E 4C9F SBCI R25,0xCF
031F 779F ANDI R25,0x7F
0320 93900101 STS 0x101,R25
0322 93800100 STS 0x100,R24
0324 2F08 MOV R16,R24
0325 2F19 MOV R17,R25
0326 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -