📄 me.lst
字号:
(0285) xs++;
0551 8989 LDD R24,Y+17
0552 899A LDD R25,Y+18
0553 9601 ADIW R24,1
0554 8B9A STD Y+18,R25
0555 8B89 STD Y+17,R24
(0286) xe--;
0556 01C7 MOVW R24,R14
0557 9701 SBIW R24,1
0558 017C MOVW R14,R24
0559 01FE MOVW R30,R28
055A 8027 LDD R2,Z+7
055B 8430 LDD R3,Z+8
055C 8441 LDD R4,Z+9
055D 8452 LDD R5,Z+10
055E 01FE MOVW R30,R28
055F 8063 LDD R6,Z+3
0560 8074 LDD R7,Z+4
0561 8085 LDD R8,Z+5
0562 8096 LDD R9,Z+6
0563 1462 CP R6,R2
0564 0473 CPC R7,R3
0565 0484 CPC R8,R4
0566 0495 CPC R9,R5
0567 F00C BLT 0x0569
0568 CF62 RJMP 0x04CB
(0287) }
(0288) }
(0289)
(0290) cr = aa >> 1;
0569 882C LDD R2,Y+20
056A 883D LDD R3,Y+21
056B 9435 ASR R3
056C 9427 ROR R2
056D 2444 CLR R4
056E FC37 SBRC R3,7
056F 9440 COM R4
0570 2455 CLR R5
0571 FC47 SBRC R4,7
0572 9450 COM R5
0573 01FE MOVW R30,R28
0574 8223 STD Z+3,R2
0575 8234 STD Z+4,R3
0576 8245 STD Z+5,R4
0577 8256 STD Z+6,R5
(0291) cr = cr * (b + b -1);
0578 A02E LDD R2,Y+38
0579 2433 CLR R3
057A 2D82 MOV R24,R2
057B 2799 CLR R25
057C 0D82 ADD R24,R2
057D 1D93 ADC R25,R3
057E 9701 SBIW R24,1
057F 011C MOVW R2,R24
0580 2444 CLR R4
0581 FC37 SBRC R3,7
0582 9440 COM R4
0583 2455 CLR R5
0584 FC47 SBRC R4,7
0585 9450 COM R5
0586 01FE MOVW R30,R28
0587 8063 LDD R6,Z+3
0588 8074 LDD R7,Z+4
0589 8085 LDD R8,Z+5
058A 8096 LDD R9,Z+6
058B 925A ST R5,-Y
058C 924A ST R4,-Y
058D 923A ST R3,-Y
058E 922A ST R2,-Y
058F 0183 MOVW R16,R6
0590 0194 MOVW R18,R8
0591 D6D3 RCALL empy32s
0592 01FE MOVW R30,R28
0593 8303 STD Z+3,R16
0594 8314 STD Z+4,R17
0595 8325 STD Z+5,R18
0596 8336 STD Z+6,R19
(0292) ir = bb >> 1;
0597 842F LDD R2,Y+15
0598 8838 LDD R3,Y+16
0599 9435 ASR R3
059A 9427 ROR R2
059B 2444 CLR R4
059C FC37 SBRC R3,7
059D 9440 COM R4
059E 2455 CLR R5
059F FC47 SBRC R4,7
05A0 9450 COM R5
05A1 01FE MOVW R30,R28
05A2 8227 STD Z+7,R2
05A3 8630 STD Z+8,R3
05A4 8641 STD Z+9,R4
05A5 8652 STD Z+10,R5
(0293) ir = -ir;
05A6 01FE MOVW R30,R28
05A7 8107 LDD R16,Z+7
05A8 8510 LDD R17,Z+8
05A9 8521 LDD R18,Z+9
05AA 8532 LDD R19,Z+10
05AB D70E RCALL neg32
05AC 01FE MOVW R30,R28
05AD 8307 STD Z+7,R16
05AE 8710 STD Z+8,R17
05AF 8721 STD Z+9,R18
05B0 8732 STD Z+10,R19
(0294) er = 0;
05B1 E040 LDI R20,0
05B2 E050 LDI R21,0
05B3 E060 LDI R22,0
05B4 E070 LDI R23,0
05B5 01FE MOVW R30,R28
05B6 8743 STD Z+11,R20
05B7 8754 STD Z+12,R21
05B8 8765 STD Z+13,R22
05B9 8776 STD Z+14,R23
(0295)
(0296) xs = x;
05BA A028 LDD R2,Y+32
05BB 2433 CLR R3
05BC 8A3A STD Y+18,R3
05BD 8A29 STD Y+17,R2
(0297) xe = x;
05BE A0E8 LDD R14,Y+32
05BF 24FF CLR R15
(0298) ys = y;
05C0 A0CA LDD R12,Y+34
05C1 24DD CLR R13
(0299) ys = ys - b;
05C2 A02E LDD R2,Y+38
05C3 2433 CLR R3
05C4 18C2 SUB R12,R2
05C5 08D3 SBC R13,R3
(0300) ye = y;
05C6 A0AA LDD R10,Y+34
05C7 24BB CLR R11
(0301) ye = ye + b;
05C8 2433 CLR R3
05C9 0CA2 ADD R10,R2
05CA 1CB3 ADC R11,R3
(0302) fill = 1;
05CB 2400 CLR R0
05CC 9403 INC R0
05CD 8A0B STD Y+19,R0
05CE C093 RJMP 0x0662
(0303) while (ir <= cr) {
(0304) glcdDoPixelLine(xs, xe, ys, fill);
05CF 880B LDD R0,Y+19
05D0 820A STD Y+2,R0
05D1 82D9 STD Y+1,R13
05D2 82C8 STD Y+0,R12
05D3 0197 MOVW R18,R14
05D4 8909 LDD R16,Y+17
05D5 891A LDD R17,Y+18
05D6 DDA3 RCALL _glcdDoPixelLine
(0305) if (ys != ye) {
05D7 14CA CP R12,R10
05D8 04DB CPC R13,R11
05D9 F041 BEQ 0x05E2
(0306) glcdDoPixelLine(xs, xe, ye, fill);
05DA 880B LDD R0,Y+19
05DB 820A STD Y+2,R0
05DC 82B9 STD Y+1,R11
05DD 82A8 STD Y+0,R10
05DE 0197 MOVW R18,R14
05DF 8909 LDD R16,Y+17
05E0 891A LDD R17,Y+18
05E1 DD98 RCALL _glcdDoPixelLine
(0307) }
(0308) fill = 0;
05E2 2400 CLR R0
05E3 8A0B STD Y+19,R0
(0309) ir += bb;
05E4 842F LDD R2,Y+15
05E5 8838 LDD R3,Y+16
05E6 2444 CLR R4
05E7 FC37 SBRC R3,7
05E8 9440 COM R4
05E9 2455 CLR R5
05EA FC47 SBRC R4,7
05EB 9450 COM R5
05EC 01FE MOVW R30,R28
05ED 8067 LDD R6,Z+7
05EE 8470 LDD R7,Z+8
05EF 8481 LDD R8,Z+9
05F0 8492 LDD R9,Z+10
05F1 0C62 ADD R6,R2
05F2 1C73 ADC R7,R3
05F3 1C84 ADC R8,R4
05F4 1C95 ADC R9,R5
05F5 01FE MOVW R30,R28
05F6 8267 STD Z+7,R6
05F7 8670 STD Z+8,R7
05F8 8681 STD Z+9,R8
05F9 8692 STD Z+10,R9
(0310) er += ir;
05FA 01FE MOVW R30,R28
05FB 8027 LDD R2,Z+7
05FC 8430 LDD R3,Z+8
05FD 8441 LDD R4,Z+9
05FE 8452 LDD R5,Z+10
05FF 01FE MOVW R30,R28
0600 8463 LDD R6,Z+11
0601 8474 LDD R7,Z+12
0602 8485 LDD R8,Z+13
0603 8496 LDD R9,Z+14
0604 0C62 ADD R6,R2
0605 1C73 ADC R7,R3
0606 1C84 ADC R8,R4
0607 1C95 ADC R9,R5
0608 01FE MOVW R30,R28
0609 8663 STD Z+11,R6
060A 8674 STD Z+12,R7
060B 8685 STD Z+13,R8
060C 8696 STD Z+14,R9
(0311) if (2 * er > cr) {
060D 01FE MOVW R30,R28
060E 8423 LDD R2,Z+11
060F 8434 LDD R3,Z+12
0610 8445 LDD R4,Z+13
0611 8456 LDD R5,Z+14
0612 E042 LDI R20,2
0613 E050 LDI R21,0
0614 E060 LDI R22,0
0615 E070 LDI R23,0
0616 925A ST R5,-Y
0617 924A ST R4,-Y
0618 923A ST R3,-Y
0619 922A ST R2,-Y
061A 018A MOVW R16,R20
061B 019B MOVW R18,R22
061C D648 RCALL empy32s
061D 01FE MOVW R30,R28
061E 8023 LDD R2,Z+3
061F 8034 LDD R3,Z+4
0620 8045 LDD R4,Z+5
0621 8056 LDD R5,Z+6
0622 1620 CP R2,R16
0623 0631 CPC R3,R17
0624 0642 CPC R4,R18
0625 0653 CPC R5,R19
0626 F00C BLT 0x0628
0627 C032 RJMP 0x065A
(0312) er -= cr;
0628 01FE MOVW R30,R28
0629 8023 LDD R2,Z+3
062A 8034 LDD R3,Z+4
062B 8045 LDD R4,Z+5
062C 8056 LDD R5,Z+6
062D 01FE MOVW R30,R28
062E 8463 LDD R6,Z+11
062F 8474 LDD R7,Z+12
0630 8485 LDD R8,Z+13
0631 8496 LDD R9,Z+14
0632 1862 SUB R6,R2
0633 0873 SBC R7,R3
0634 0884 SBC R8,R4
0635 0895 SBC R9,R5
0636 01FE MOVW R30,R28
0637 8663 STD Z+11,R6
0638 8674 STD Z+12,R7
0639 8685 STD Z+13,R8
063A 8696 STD Z+14,R9
(0313) cr -= aa;
063B 882C LDD R2,Y+20
063C 883D LDD R3,Y+21
063D 2444 CLR R4
063E FC37 SBRC R3,7
063F 9440 COM R4
0640 2455 CLR R5
0641 FC47 SBRC R4,7
0642 9450 COM R5
0643 01FE MOVW R30,R28
0644 8063 LDD R6,Z+3
0645 8074 LDD R7,Z+4
0646 8085 LDD R8,Z+5
0647 8096 LDD R9,Z+6
0648 1862 SUB R6,R2
0649 0873 SBC R7,R3
064A 0884 SBC R8,R4
064B 0895 SBC R9,R5
064C 01FE MOVW R30,R28
064D 8263 STD Z+3,R6
064E 8274 STD Z+4,R7
064F 8285 STD Z+5,R8
0650 8296 STD Z+6,R9
(0314) ys++;
0651 01C6 MOVW R24,R12
0652 9601 ADIW R24,1
0653 016C MOVW R12,R24
(0315) ye--;
0654 01C5 MOVW R24,R10
0655 9701 SBIW R24,1
0656 015C MOVW R10,R24
(0316) fill = 1;
0657 2400 CLR R0
0658 9403 INC R0
0659 8A0B STD Y+19,R0
(0317) }
(0318) xs--;
065A 8989 LDD R24,Y+17
065B 899A LDD R25,Y+18
065C 9701 SBIW R24,1
065D 8B9A STD Y+18,R25
065E 8B89 STD Y+17,R24
(0319) xe++;
065F 01C7 MOVW R24,R14
0660 9601 ADIW R24,1
0661 017C MOVW R14,R24
0662 01FE MOVW R30,R28
0663 8023 LDD R2,Z+3
0664 8034 LDD R3,Z+4
0665 8045 LDD R4,Z+5
0666 8056 LDD R5,Z+6
0667 01FE MOVW R30,R28
0668 8067 LDD R6,Z+7
0669 8470 LDD R7,Z+8
066A 8481 LDD R8,Z+9
066B 8492 LDD R9,Z+10
066C 1426 CP R2,R6
066D 0437 CPC R3,R7
066E 0448 CPC R4,R8
066F 0459 CPC R5,R9
0670 F00C BLT 0x0672
0671 CF5D RJMP 0x05CF
(0320) }
(0321) }
0672 9666 ADIW R28,0x16
0673 D621 RCALL pop_gset5
0674 9624 ADIW R28,4
0675 9508 RET
_RoundRect:
zy1 --> Y+4
rs --> R20
zx1 --> R22
Oy --> Y+5
Ox --> Y+4
xt --> R12
rr --> R14
xx --> R10
yt --> Y+3
r --> Y+24
h --> Y+22
w --> Y+20
y --> Y+18
x --> Y+16
0676 D5D1 RCALL push_arg4
0677 D63F RCALL push_gset5
0678 9726 SBIW R28,6
(0322)
(0323) void RoundRect(unsigned char x,unsigned char y,unsigned char w,unsigned char h,unsigned char r)
(0324) {
(0325) char Ox,Oy,rr,xt,yt,rs,zx1,zy1;
(0326) int xx;
(0327) //if(x<0||y<0)return;
(0328)
(0329)
(0330) if (cbk&0x8000)
0679 9020006D LDS R2,_cbk
067B 9030006E LDS R3,_cbk+1
067D FE37 SBRS R3,7
067E C0C1 RJMP 0x0740
(0331) {RGBToChar(cbk);
067F 0181 MOVW R16,R2
0680 D53A RCALL _RGBToChar
(0332)
(0333) Ox=x+r;Oy=y+r;
0681 8828 LDD R2,Y+16
0682 8C08 LDD R0,Y+24
0683 0C20 ADD R2,R0
0684 822C STD Y+4,R2
0685 882A LDD R2,Y+18
0686 8C08 LDD R0,Y+24
0687 0C20 ADD R2,R0
0688 822D STD Y+5,R2
(0334) yt=r;
0689 8C08 LDD R0,Y+24
068A 820B STD Y+3,R0
(0335) rr=r*r+1; //补偿 1 修正方形
068B 8C08 LDD R0,Y+24
068C 2D00 MOV R16,R0
068D 9E00 MUL R0,R16
068E 2D80 MOV R24,R0
068F 5F8F SUBI R24,0xFF
0690 2EE8 MOV R14,R24
(0336) rs=(yt+(yt>>1))>>1; //(*0.75)分开1/8圆弧来画
0691 802B LDD R2,Y+3
0692 9426 LSR R2
0693 814B LDD R20,Y+3
0694 0D42 ADD R20,R2
0695 9546 LSR R20
(0337)
(0338) for (xt=0;xt<=rs;xt++)
0696 24CC CLR R12
0697 C092 RJMP 0x072A
(0339) {
(0340) xx=xt*xt;
0698 9CCC MUL R12,R12
0699 0150 MOVW R10,R0
069A C003 RJMP 0x069E
(0341) while ((yt*yt)>(rr-xx))yt--;
069B 800B LDD R0,Y+3
069C 940A DEC R0
069D 820B STD Y+3,R0
069E 2C2E MOV R2,R14
069F 2433 CLR R3
06A0 182A SUB R2,R10
06A1 083B SBC R3,R11
06A2 800B LDD R0,Y+3
06A3 2D00 MOV R16,R0
06A4 9E00 MUL R0,R16
06A5 1420 CP R2,R0
06A6 0431 CPC R3,R1
06A7 F39C BLT 0x069B
(0342)
(0343) zx=Ox+xt+w-(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -