📄 lcdtest.lst
字号:
1C96 24AA CLR R10
1C97 24BB CLR R11
1C98 898F LDD R24,Y+23
1C99 3082 CPI R24,2
1C9A F019 BEQ 0x1C9E
1C9B E061 LDI R22,1
1C9C E070 LDI R23,0
1C9D C002 RJMP 0x1CA0
1C9E 2766 CLR R22
1C9F 2777 CLR R23
1CA0 0116 MOVW R2,R12
1CA1 202A AND R2,R10
1CA2 203B AND R3,R11
1CA3 2226 AND R2,R22
1CA4 2237 AND R3,R23
1CA5 2022 TST R2
1CA6 F411 BNE 0x1CA9
1CA7 2033 TST R3
1CA8 F011 BEQ 0x1CAB
(0099) {
(0100) tt=' ';
1CA9 E240 LDI R20,0x20
(0101) }
1CAA C004 RJMP 0x1CAF
(0102) else
(0103) {
(0104) flag=1;
1CAB 2400 CLR R0
1CAC 9403 INC R0
1CAD 820E STD Y+6,R0
(0105) tt+=0x30;
1CAE 5D40 SUBI R20,0xD0
(0106) }
(0107) x+=8;
1CAF 8989 LDD R24,Y+17
1CB0 899A LDD R25,Y+18
1CB1 9608 ADIW R24,0x8
1CB2 8B9A STD Y+18,R25
1CB3 8B89 STD Y+17,R24
(0108) Dis_Ascii(x,y,tt,front,back);
1CB4 2C2E MOV R2,R14
1CB5 2433 CLR R3
1CB6 823D STD Y+5,R3
1CB7 822C STD Y+4,R2
1CB8 8C09 LDD R0,Y+25
1CB9 820A STD Y+2,R0
1CBA 8348 STD Y+0,R20
1CBB 892B LDD R18,Y+19
1CBC 018C MOVW R16,R24
1CBD 940E24CF CALL _Dis_Ascii
(0109) if(point==2)
1CBF 898F LDD R24,Y+23
1CC0 3082 CPI R24,2
1CC1 F491 BNE 0x1CD4
(0110) {
(0111) x+=8;
1CC2 8989 LDD R24,Y+17
1CC3 899A LDD R25,Y+18
1CC4 9608 ADIW R24,0x8
1CC5 8B9A STD Y+18,R25
1CC6 8B89 STD Y+17,R24
(0112) Dis_Ascii(x,y,'.',front,back);
1CC7 2C2E MOV R2,R14
1CC8 2433 CLR R3
1CC9 823D STD Y+5,R3
1CCA 822C STD Y+4,R2
1CCB 8C09 LDD R0,Y+25
1CCC 820A STD Y+2,R0
1CCD E28E LDI R24,0x2E
1CCE 8388 STD Y+0,R24
1CCF 892B LDD R18,Y+19
1CD0 8909 LDD R16,Y+17
1CD1 891A LDD R17,Y+18
1CD2 940E24CF CALL _Dis_Ascii
(0113) }
(0114) tt=temp/10;
1CD4 E02A LDI R18,0xA
1CD5 E030 LDI R19,0
1CD6 890D LDD R16,Y+21
1CD7 891E LDD R17,Y+22
1CD8 940E3022 CALL div16u
1CDA 2F40 MOV R20,R16
(0115) temp%=10;
1CDB E02A LDI R18,0xA
1CDC E030 LDI R19,0
1CDD 890D LDD R16,Y+21
1CDE 891E LDD R17,Y+22
1CDF 940E3020 CALL mod16u
1CE1 8B1E STD Y+22,R17
1CE2 8B0D STD Y+21,R16
(0116) if((tt==0)&(flag==0)&(point!=1))
1CE3 2344 TST R20
1CE4 F421 BNE 0x1CE9
1CE5 E081 LDI R24,1
1CE6 E090 LDI R25,0
1CE7 016C MOVW R12,R24
1CE8 C002 RJMP 0x1CEB
1CE9 24CC CLR R12
1CEA 24DD CLR R13
1CEB 800E LDD R0,Y+6
1CEC 2000 TST R0
1CED F421 BNE 0x1CF2
1CEE E081 LDI R24,1
1CEF E090 LDI R25,0
1CF0 015C MOVW R10,R24
1CF1 C002 RJMP 0x1CF4
1CF2 24AA CLR R10
1CF3 24BB CLR R11
1CF4 898F LDD R24,Y+23
1CF5 3081 CPI R24,1
1CF6 F019 BEQ 0x1CFA
1CF7 E061 LDI R22,1
1CF8 E070 LDI R23,0
1CF9 C002 RJMP 0x1CFC
1CFA 2766 CLR R22
1CFB 2777 CLR R23
1CFC 0116 MOVW R2,R12
1CFD 202A AND R2,R10
1CFE 203B AND R3,R11
1CFF 2226 AND R2,R22
1D00 2237 AND R3,R23
1D01 2022 TST R2
1D02 F411 BNE 0x1D05
1D03 2033 TST R3
1D04 F011 BEQ 0x1D07
(0117) {
(0118) tt=' ';
1D05 E240 LDI R20,0x20
(0119) }
1D06 C004 RJMP 0x1D0B
(0120) else
(0121) {
(0122) flag=1;
1D07 2400 CLR R0
1D08 9403 INC R0
1D09 820E STD Y+6,R0
(0123) tt+=0x30;
1D0A 5D40 SUBI R20,0xD0
(0124) }
(0125) x+=8;
1D0B 8989 LDD R24,Y+17
1D0C 899A LDD R25,Y+18
1D0D 9608 ADIW R24,0x8
1D0E 8B9A STD Y+18,R25
1D0F 8B89 STD Y+17,R24
(0126) Dis_Ascii(x,y,tt,front,back);
1D10 2C2E MOV R2,R14
1D11 2433 CLR R3
1D12 823D STD Y+5,R3
1D13 822C STD Y+4,R2
1D14 8C09 LDD R0,Y+25
1D15 820A STD Y+2,R0
1D16 8348 STD Y+0,R20
1D17 892B LDD R18,Y+19
1D18 018C MOVW R16,R24
1D19 940E24CF CALL _Dis_Ascii
(0127) if(point==1)
1D1B 898F LDD R24,Y+23
1D1C 3081 CPI R24,1
1D1D F491 BNE 0x1D30
(0128) {
(0129) x+=8;
1D1E 8989 LDD R24,Y+17
1D1F 899A LDD R25,Y+18
1D20 9608 ADIW R24,0x8
1D21 8B9A STD Y+18,R25
1D22 8B89 STD Y+17,R24
(0130) Dis_Ascii(x,y,'.',front,back);
1D23 2C2E MOV R2,R14
1D24 2433 CLR R3
1D25 823D STD Y+5,R3
1D26 822C STD Y+4,R2
1D27 8C09 LDD R0,Y+25
1D28 820A STD Y+2,R0
1D29 E28E LDI R24,0x2E
1D2A 8388 STD Y+0,R24
1D2B 892B LDD R18,Y+19
1D2C 8909 LDD R16,Y+17
1D2D 891A LDD R17,Y+18
1D2E 940E24CF CALL _Dis_Ascii
(0131) }
(0132) x+=8;
1D30 8989 LDD R24,Y+17
1D31 899A LDD R25,Y+18
1D32 9608 ADIW R24,0x8
1D33 8B9A STD Y+18,R25
1D34 8B89 STD Y+17,R24
(0133) Dis_Ascii(x,y,temp+0x30,front,back);
1D35 2C2E MOV R2,R14
1D36 2433 CLR R3
1D37 823D STD Y+5,R3
1D38 822C STD Y+4,R2
1D39 8C09 LDD R0,Y+25
1D3A 820A STD Y+2,R0
1D3B 898D LDD R24,Y+21
1D3C 899E LDD R25,Y+22
1D3D 96C0 ADIW R24,0x30
1D3E 8388 STD Y+0,R24
1D3F 892B LDD R18,Y+19
1D40 8909 LDD R16,Y+17
1D41 891A LDD R17,Y+18
1D42 940E24CF CALL _Dis_Ascii
1D44 9627 ADIW R28,7
1D45 940E310A CALL pop_gset5
1D47 9624 ADIW R28,4
1D48 9508 RET
_DrawLine:
ey --> Y+12
ex --> Y+8
sy --> Y+4
sx --> Y+0
y --> R10
x --> R12
color --> Y+36
y2 --> Y+34
x2 --> R20
y1 --> Y+30
x1 --> R10
1D49 933A ST R19,-Y
1D4A 932A ST R18,-Y
1D4B 940E310D CALL push_gset5
1D4D 0158 MOVW R10,R16
1D4E 9764 SBIW R28,0x14
1D4F A148 LDD R20,Y+32
1D50 A159 LDD R21,Y+33
(0134) }
(0135) /*
(0136) 功能:画直线
(0137) 参数:(x1,y1) 为起点坐标
(0138) (x2,y2) 为终点坐标
(0139) color 为线的颜色
(0140) 编写者:赫树开
(0141) 日期:2005.12.1
(0142) */
(0143) void DrawLine(unsigned int x1,unsigned char y1,unsigned int x2,unsigned char y2,unsigned char color)
(0144) {
(0145) float sx,sy,ex,ey;
(0146) unsigned int x;
(0147) unsigned char y;
(0148) sx = x1;
1D51 EB03 LDI R16,0xB3
1D52 E117 LDI R17,0x17
1D53 940E30AD CALL elpm32
1D55 933A ST R19,-Y
1D56 932A ST R18,-Y
1D57 931A ST R17,-Y
1D58 930A ST R16,-Y
1D59 0185 MOVW R16,R10
1D5A 9516 LSR R17
1D5B 9507 ROR R16
1D5C 940E31FD CALL int2fp
1D5E 933A ST R19,-Y
1D5F 932A ST R18,-Y
1D60 931A ST R17,-Y
1D61 930A ST R16,-Y
1D62 940E3348 CALL empy32fs
1D64 0185 MOVW R16,R10
1D65 7001 ANDI R16,1
1D66 7010 ANDI R17,0
1D67 940E31FD CALL int2fp
1D69 933A ST R19,-Y
1D6A 932A ST R18,-Y
1D6B 931A ST R17,-Y
1D6C 930A ST R16,-Y
1D6D 940E325C CALL add32f
1D6F 01FE MOVW R30,R28
1D70 8300 STD Z+0,R16
1D71 8311 STD Z+1,R17
1D72 8322 STD Z+2,R18
1D73 8333 STD Z+3,R19
(0149) sy = y1;
1D74 8D0E LDD R16,Y+30
1D75 2711 CLR R17
1D76 940E31FD CALL int2fp
1D78 01FE MOVW R30,R28
1D79 8304 STD Z+4,R16
1D7A 8315 STD Z+5,R17
1D7B 8326 STD Z+6,R18
1D7C 8337 STD Z+7,R19
(0150) ex = x2;
1D7D EB03 LDI R16,0xB3
1D7E E117 LDI R17,0x17
1D7F 940E30AD CALL elpm32
1D81 933A ST R19,-Y
1D82 932A ST R18,-Y
1D83 931A ST R17,-Y
1D84 930A ST R16,-Y
1D85 018A MOVW R16,R20
1D86 9516 LSR R17
1D87 9507 ROR R16
1D88 940E31FD CALL int2fp
1D8A 933A ST R19,-Y
1D8B 932A ST R18,-Y
1D8C 931A ST R17,-Y
1D8D 930A ST R16,-Y
1D8E 940E3348 CALL empy32fs
1D90 018A MOVW R16,R20
1D91 7001 ANDI R16,1
1D92 7010 ANDI R17,0
1D93 940E31FD CALL int2fp
1D95 933A ST R19,-Y
1D96 932A ST R18,-Y
1D97 931A ST R17,-Y
1D98 930A ST R16,-Y
1D99 940E325C CALL add32f
1D9B 01FE MOVW R30,R28
1D9C 8700 STD Z+8,R16
1D9D 8711 STD Z+9,R17
1D9E 8722 STD Z+10,R18
1D9F 8733 STD Z+11,R19
(0151) ey = y2;
1DA0 A10A LDD R16,Y+34
1DA1 2711 CLR R17
1DA2 940E31FD CALL int2fp
1DA4 01FE MOVW R30,R28
1DA5 8704 STD Z+12,R16
1DA6 8715 STD Z+13,R17
1DA7 8726 STD Z+14,R18
1DA8 8737 STD Z+15,R19
(0152) if(fabs(sx-ex)>=fabs(sy-ey))
1DA9 01FE MOVW R30,R28
1DAA 8020 LDD R2,Z+0
1DAB 8031 LDD R3,Z+1
1DAC 8042 LDD R4,Z+2
1DAD 8053 LDD R5,Z+3
1DAE 925A ST R5,-Y
1DAF 924A ST R4,-Y
1DB0 923A ST R3,-Y
1DB1 922A ST R2,-Y
1DB2 01FE MOVW R30,R28
1DB3 8424 LDD R2,Z+12
1DB4 8435 LDD R3,Z+13
1DB5 8446 LDD R4,Z+14
1DB6 8457 LDD R5,Z+15
1DB7 925A ST R5,-Y
1DB8 924A ST R4,-Y
1DB9 923A ST R3,-Y
1DBA 922A ST R2,-Y
1DBB 940E3264 CALL sub32f
1DBD 940E3257 CALL _fabs
1DBF 0118 MOVW R2,R16
1DC0 0129 MOVW R4,R18
1DC1 01FE MOVW R30,R28
1DC2 8064 LDD R6,Z+4
1DC3 8075 LDD R7,Z+5
1DC4 8086 LDD R8,Z+6
1DC5 8097 LDD R9,Z+7
1DC6 929A ST R9,-Y
1DC7 928A ST R8,-Y
1DC8 927A ST R7,-Y
1DC9 926A ST R6,-Y
1DCA 01FE MOVW R30,R28
1DCB 8860 LDD R6,Z+16
1DCC 8871 LDD R7,Z+17
1DCD 8882 LDD R8,Z+18
1DCE 8893 LDD R9,Z+19
1DCF 929A ST R9,-Y
1DD0 928A ST R8,-Y
1DD1 927A ST R7,-Y
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -