📄 edu.lst
字号:
040C 4FFF SBCI R31,0xFF
040D 8300 STD Z+0,R16
(0354) k=score-i*100-j*10;
040E E684 LDI R24,0x64
040F 01FE MOVW R30,R28
0410 53E6 SUBI R30,0x36
0411 4FFF SBCI R31,0xFF
0412 8000 LDD R0,Z+0
0413 9D80 MUL R24,R0
0414 2C2A MOV R2,R10
0415 1820 SUB R2,R0
0416 E08A LDI R24,0xA
0417 2E00 MOV R0,R16
0418 9D80 MUL R24,R0
0419 1820 SUB R2,R0
041A 01FE MOVW R30,R28
041B 53E5 SUBI R30,0x35
041C 4FFF SBCI R31,0xFF
041D 8220 STD Z+0,R2
(0355) if(i==1)
041E 01FE MOVW R30,R28
041F 53E6 SUBI R30,0x36
0420 4FFF SBCI R31,0xFF
0421 8180 LDD R24,Z+0
0422 3081 CPI R24,1
0423 F471 BNE 0x0432
(0356) lcd_buffer[3]=table[j]|0x10;
0424 E680 LDI R24,0x60
0425 E090 LDI R25,0
0426 01DE MOVW R26,R28
0427 53A4 SUBI R26,0x34
0428 4FBF SBCI R27,0xFF
0429 91EC LD R30,0(X)
042A 27FF CLR R31
042B 0FE8 ADD R30,R24
042C 1FF9 ADC R31,R25
042D 8180 LDD R24,Z+0
042E 6180 ORI R24,0x10
042F 93800145 STS _lcd_buffer+3,R24
0431 C00C RJMP 0x043E
(0357) else
(0358) lcd_buffer[3]=table[j];
0432 E680 LDI R24,0x60
0433 E090 LDI R25,0
0434 01DE MOVW R26,R28
0435 53A4 SUBI R26,0x34
0436 4FBF SBCI R27,0xFF
0437 91EC LD R30,0(X)
0438 27FF CLR R31
0439 0FE8 ADD R30,R24
043A 1FF9 ADC R31,R25
043B 8020 LDD R2,Z+0
043C 92200145 STS _lcd_buffer+3,R2
(0359) lcd_buffer[13]=table[k]|0x10;
043E E680 LDI R24,0x60
043F E090 LDI R25,0
0440 01DE MOVW R26,R28
0441 53A5 SUBI R26,0x35
0442 4FBF SBCI R27,0xFF
0443 91EC LD R30,0(X)
0444 27FF CLR R31
0445 0FE8 ADD R30,R24
0446 1FF9 ADC R31,R25
0447 8180 LDD R24,Z+0
0448 6180 ORI R24,0x10
0449 9380014F STS 0x14F,R24
(0360) send_data(6,lcd_buffer[3]);
044B 91200145 LDS R18,_lcd_buffer+3
044D E006 LDI R16,6
044E 940E0A59 CALL _send_data
(0361) send_data(26,lcd_buffer[13]);
0450 9120014F LDS R18,0x14F
0452 E10A LDI R16,0x1A
0453 940E0A59 CALL _send_data
(0362) break;
(0363) deflaut: break;
(0364) }
(0365)
(0366) }
(0367) }
(0368)
(0369) }
(0370) }
(0371) A: if((data[4]==0xFE||data[4]==0xDB)&&data[ques_num+5]==0xDB)// //it is the answer
0455 91800071 LDS R24,0x71
0457 3F8E CPI R24,0xFE
0458 F019 BEQ 0x045C
0459 3D8B CPI R24,0xDB
045A F009 BEQ 0x045C
045B C03C RJMP 0x0498
045C E782 LDI R24,0x72
045D E090 LDI R25,0
045E 91E0006C LDS R30,_ques_num
0460 27FF CLR R31
0461 0FE8 ADD R30,R24
0462 1FF9 ADC R31,R25
0463 8180 LDD R24,Z+0
0464 3D8B CPI R24,0xDB
0465 F009 BEQ 0x0467
0466 C031 RJMP 0x0498
(0372) {
(0373) key_flag=0;
0467 2400 CLR R0
0468 01FE MOVW R30,R28
0469 52ED SUBI R30,0x2D
046A 4FFF SBCI R31,0xFF
046B 8200 STD Z+0,R0
(0374) lcd_buffer[9]=0x40;
046C E480 LDI R24,0x40
046D 9380014B STS 0x14B,R24
(0375) for(i=0;i<ques_num;i++)
046F 01FE MOVW R30,R28
0470 53E6 SUBI R30,0x36
0471 4FFF SBCI R31,0xFF
0472 8200 STD Z+0,R0
0473 C01C RJMP 0x0490
(0376) ans[i]=data[i+5];
0474 E782 LDI R24,0x72
0475 E090 LDI R25,0
0476 01DE MOVW R26,R28
0477 53A6 SUBI R26,0x36
0478 4FBF SBCI R27,0xFF
0479 91EC LD R30,0(X)
047A 27FF CLR R31
047B 0FE8 ADD R30,R24
047C 1FF9 ADC R31,R25
047D 8020 LDD R2,Z+0
047E 01CE MOVW R24,R28
047F 01DE MOVW R26,R28
0480 53A6 SUBI R26,0x36
0481 4FBF SBCI R27,0xFF
0482 91EC LD R30,0(X)
0483 27FF CLR R31
0484 0FE8 ADD R30,R24
0485 1FF9 ADC R31,R25
0486 8220 STD Z+0,R2
0487 01FE MOVW R30,R28
0488 53E6 SUBI R30,0x36
0489 4FFF SBCI R31,0xFF
048A 8000 LDD R0,Z+0
048B 9403 INC R0
048C 01FE MOVW R30,R28
048D 53E6 SUBI R30,0x36
048E 4FFF SBCI R31,0xFF
048F 8200 STD Z+0,R0
0490 9020006C LDS R2,_ques_num
0492 01FE MOVW R30,R28
0493 53E6 SUBI R30,0x36
0494 4FFF SBCI R31,0xFF
0495 8000 LDD R0,Z+0
0496 1402 CP R0,R2
0497 F2E0 BCS 0x0474
(0377)
(0378) }
(0379)
(0380)
(0381) if(ans[ques_id-1]&0x01)
0498 01CE MOVW R24,R28
0499 9701 SBIW R24,1
049A 01DE MOVW R26,R28
049B 53A3 SUBI R26,0x33
049C 4FBF SBCI R27,0xFF
049D 91EC LD R30,0(X)
049E 27FF CLR R31
049F 0FE8 ADD R30,R24
04A0 1FF9 ADC R31,R25
04A1 8020 LDD R2,Z+0
04A2 FE20 SBRS R2,0
04A3 C006 RJMP 0x04AA
(0382) lcd_buffer[9]|=0x04;
04A4 9180014B LDS R24,0x14B
04A6 6084 ORI R24,4
04A7 9380014B STS 0x14B,R24
04A9 C005 RJMP 0x04AF
(0383) else
(0384) lcd_buffer[9]&=0xfb;
04AA 9180014B LDS R24,0x14B
04AC 7F8B ANDI R24,0xFB
04AD 9380014B STS 0x14B,R24
(0385) if(ans[ques_id-1]&0x02)
04AF 01CE MOVW R24,R28
04B0 9701 SBIW R24,1
04B1 01DE MOVW R26,R28
04B2 53A3 SUBI R26,0x33
04B3 4FBF SBCI R27,0xFF
04B4 91EC LD R30,0(X)
04B5 27FF CLR R31
04B6 0FE8 ADD R30,R24
04B7 1FF9 ADC R31,R25
04B8 8020 LDD R2,Z+0
04B9 FE21 SBRS R2,1
04BA C006 RJMP 0x04C1
(0386) lcd_buffer[9]|=0x08;
04BB 9180014B LDS R24,0x14B
04BD 6088 ORI R24,0x8
04BE 9380014B STS 0x14B,R24
04C0 C005 RJMP 0x04C6
(0387) else
(0388) lcd_buffer[9]&=0xf7;
04C1 9180014B LDS R24,0x14B
04C3 7F87 ANDI R24,0xF7
04C4 9380014B STS 0x14B,R24
(0389) if(ans[ques_id-1]&0x04)
04C6 01CE MOVW R24,R28
04C7 9701 SBIW R24,1
04C8 01DE MOVW R26,R28
04C9 53A3 SUBI R26,0x33
04CA 4FBF SBCI R27,0xFF
04CB 91EC LD R30,0(X)
04CC 27FF CLR R31
04CD 0FE8 ADD R30,R24
04CE 1FF9 ADC R31,R25
04CF 8020 LDD R2,Z+0
04D0 FE22 SBRS R2,2
04D1 C006 RJMP 0x04D8
(0390) lcd_buffer[1]|=0x20;
04D2 91800143 LDS R24,_lcd_buffer+1
04D4 6280 ORI R24,0x20
04D5 93800143 STS _lcd_buffer+1,R24
04D7 C005 RJMP 0x04DD
(0391) else
(0392) lcd_buffer[1]&=0xdf;
04D8 91800143 LDS R24,_lcd_buffer+1
04DA 7D8F ANDI R24,0xDF
04DB 93800143 STS _lcd_buffer+1,R24
(0393) if(ans[ques_id-1]&0x08)
04DD 01CE MOVW R24,R28
04DE 9701 SBIW R24,1
04DF 01DE MOVW R26,R28
04E0 53A3 SUBI R26,0x33
04E1 4FBF SBCI R27,0xFF
04E2 91EC LD R30,0(X)
04E3 27FF CLR R31
04E4 0FE8 ADD R30,R24
04E5 1FF9 ADC R31,R25
04E6 8020 LDD R2,Z+0
04E7 FE23 SBRS R2,3
04E8 C006 RJMP 0x04EF
(0394) lcd_buffer[1]|=0x40;
04E9 91800143 LDS R24,_lcd_buffer+1
04EB 6480 ORI R24,0x40
04EC 93800143 STS _lcd_buffer+1,R24
04EE C005 RJMP 0x04F4
(0395) else
(0396) lcd_buffer[1]&=0xbf;
04EF 91800143 LDS R24,_lcd_buffer+1
04F1 7B8F ANDI R24,0xBF
04F2 93800143 STS _lcd_buffer+1,R24
(0397) if(ans[ques_id-1]&0x10)
04F4 01CE MOVW R24,R28
04F5 9701 SBIW R24,1
04F6 01DE MOVW R26,R28
04F7 53A3 SUBI R26,0x33
04F8 4FBF SBCI R27,0xFF
04F9 91EC LD R30,0(X)
04FA 27FF CLR R31
04FB 0FE8 ADD R30,R24
04FC 1FF9 ADC R31,R25
04FD 8020 LDD R2,Z+0
04FE FE24 SBRS R2,4
04FF C006 RJMP 0x0506
(0398) lcd_buffer[1]|=0x04;
0500 91800143 LDS R24,_lcd_buffer+1
0502 6084 ORI R24,4
0503 93800143 STS _lcd_buffer+1,R24
0505 C005 RJMP 0x050B
(0399) else
(0400) lcd_buffer[1]&=0xfb;
0506 91800143 LDS R24,_lcd_buffer+1
0508 7F8B ANDI R24,0xFB
0509 93800143 STS _lcd_buffer+1,R24
(0401)
(0402) send_data(2,lcd_buffer[1]);
050B 91200143 LDS R18,_lcd_buffer+1
050D E002 LDI R16,2
050E 940E0A59 CALL _send_data
(0403) send_data(18,lcd_buffer[9]);
0510 9120014B LDS R18,0x14B
0512 E102 LDI R16,0x12
0513 940E0A59 CALL _send_data
(0404)
(0405) if(ques_num!=0)//&&key_flag==1
0515 9020006C LDS R2,_ques_num
0517 2022 TST R2
0518 F409 BNE 0x051A
0519 C47B RJMP 0x0995
(0406) {
(0407) j=0;
051A 2400 CLR R0
051B 01FE MOVW R30,R28
051C 53E4 SUBI R30,0x34
051D 4FFF SBCI R31,0xFF
051E 8200 STD Z+0,R0
(0408) for(k=0;k<ques_num;k++)
051F 01FE MOVW R30,R28
0520 53E5 SUBI R30,0x35
0521 4FFF SBCI R31,0xFF
0522 8200 STD Z+0,R0
0523 C02F RJMP 0x0553
(0409) {
(0410) if(ques[k]==0)
0524 ED8B LDI R24,0xDB
0525 E090 LDI R25,0
0526 01DE MOVW R26,R28
0527 53A5 SUBI R26,0x35
0528 4FBF SBCI R27,0xFF
0529 91EC LD R30,0(X)
052A 27FF CLR R31
052B 0FE8 ADD R30,R24
052C 1FF9 ADC R31,R25
052D 8020 LDD R2,Z+0
052E 2022 TST R2
052F F4D1 BNE 0x054A
(0411) {
(0412) n_ques[j]=k+1;
0530 01CE MOVW R24,R28
0531 598C SUBI R24,0x9C
0532 4F9F SBCI R25,0xFF
0533 01DE MOVW R26,R28
0534 53A4 SUBI R26,0x34
0535 4FBF SBCI R27,0xFF
0536 91EC LD R30,0(X)
0537 27FF CLR R31
0538 0FE8 ADD R30,R24
0539 1FF9 ADC R31,R25
053A 01DE MOVW R26,R28
053B 53A5 SUBI R26,0x35
053C 4FBF SBCI R27,0xFF
053D 918C LD R24,0(X)
053E 5F8F SUBI R24,0xFF
053F 8380 STD Z+0,R24
(0413) j++;
0540 01FE MOVW R30,R28
0541 53E4 SUBI R30,0x34
0542 4FFF SBCI R31,0xFF
0543 8000 LDD R0,Z+0
0544 9403 INC R0
0545 01FE MOVW R30,R28
0546 53E4 SUBI R30,0x34
0547 4FFF SBCI R31,0xFF
0548 8200 STD Z+0,R0
(0414) n_num++;
0549 94E3 INC R14
054A 01FE MOVW R30,R28
054B 53E5 SUBI R30,0x35
054C 4FFF SBCI R31,0xFF
054D 8000 LDD R0,Z+0
054E 9403 INC R0
054F 01FE MOVW R30,R28
0550 53E5 SUBI R30,0x35
0551 4FFF SBCI R31,0xFF
0552 8200 STD Z+0,R0
0553 9020006C LDS R2,_ques_num
0555 01FE MOVW R30,R28
0556 53E5 SUBI R30,0x35
0557 4FFF SBCI R31,0xFF
0558 8000 LDD R0,Z+0
0559 1402 CP R0,R2
055A F408 BCC 0x055C
055B CFC8 RJMP 0x0524
(0415) }
(0416) }
(0417) i=n_num/100;
055C E614 LDI R17,0x64
055D 2D0E MOV R16,R14
055E 940E0B82 CALL div8u
0560 01FE MOVW R30,R28
0561 53E6 SUBI R30,0x36
0562 4FFF SBCI R31,0xFF
0563 8300 STD Z+0,R16
(0418) j=(n_num-i*100)/10;
0564 E684 LDI R24,0x64
0565 2E00 MOV R0,R16
0566 9D80 MUL R24,R0
0567 2D0E MOV R16,R14
0568 1900 SUB R16,R0
0569 E01A LDI R17,0xA
056A 940E0B82 CALL div8u
056C 01FE MOVW R30,R28
056D 53E4 SUBI R30,0x34
056E 4FFF SBCI R31,0xFF
056F 8300 STD Z+0,R16
(0419) k=n_num-i*100-j*10;
0570 E684 LDI R24,0x64
0571 01FE MOVW R30,R28
0572 53E6 SUBI R30,0x36
0573 4FFF SBCI R31,0xFF
0574 8000 LDD R0,Z+0
0575 9D80 MUL R24,R0
0576 2C2E MOV R2,R14
0577 1820 SUB R2,R0
0578 E08A LDI R24,0xA
0579 2E00 MOV R0,R16
057A 9D80 MUL R24,R0
057B 1820 SUB R2,R0
057C 01FE MOVW R30,R28
057D 53E5 SUBI R30,0x35
057E 4FFF SBCI R31,0xFF
057F 8220 STD Z+0,R2
(0420) lcd_buffer[12]|=0x40;
0580 9180014E LDS R24,0x14E
0582 6480 ORI R24,0x40
0583 9380014E STS 0x14E,R24
(0421) if(i==1)
0585 01FE MOVW R30,R28
0586 53E6 SUBI R30,0x36
0587 4FFF SBCI R31,0xFF
0588 8180 LDD R24,Z+0
0589 3081 CPI R24,1
058A F459 BNE 0x0596
(0422) lcd_buffer[2]=table[k]|0x10;
058B E680 LDI R24,0x60
058C E090 LDI R25,0
058D 2DE2 MOV R30,R2
058E 27FF CLR R31
058F 0FE8 ADD R30,R24
0590 1FF9 ADC R31,R25
0591 8180 LDD R24,Z+0
0592 6180 ORI R24,0x10
0593 93800144 STS _lcd_buffer+2,R24
0595 C00D RJMP 0x05A3
(0423) else
(0424) lcd_buffer[2]=table[k]&0xef;
0596 E680 LDI R24,0x60
0597 E090 LDI R25,0
0598 01DE MOVW R26,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -