📄 display.lis
字号:
0184 30E0 ldi R19,0
0186 0D89 ldd R16,y+21
0188 1E89 ldd R17,y+22
018A 0E940000 xcall div16u
018E 402F mov R20,R16
0190 .dbline 97
0190 ; temp %= 100;
0190 24E6 ldi R18,100
0192 30E0 ldi R19,0
0194 0D89 ldd R16,y+21
0196 1E89 ldd R17,y+22
0198 0E940000 xcall mod16u
019C 1E8B std y+22,R17
019E 0D8B std y+21,R16
01A0 .dbline 98
01A0 ; if((tt==0)&(flag==0)&(point!=2))
01A0 4423 tst R20
01A2 21F4 brne L26
01A4 81E0 ldi R24,1
01A6 90E0 ldi R25,0
01A8 6C01 movw R12,R24
01AA 02C0 xjmp L27
01AC L26:
01AC CC24 clr R12
01AE DD24 clr R13
01B0 L27:
01B0 0E80 ldd R0,y+6
01B2 0020 tst R0
01B4 21F4 brne L28
01B6 81E0 ldi R24,1
01B8 90E0 ldi R25,0
01BA 5C01 movw R10,R24
01BC 02C0 xjmp L29
01BE L28:
01BE AA24 clr R10
01C0 BB24 clr R11
01C2 L29:
01C2 8F89 ldd R24,y+23
01C4 8230 cpi R24,2
01C6 19F0 breq L30
01C8 61E0 ldi R22,1
01CA 70E0 ldi R23,0
01CC 02C0 xjmp L31
01CE L30:
01CE 6627 clr R22
01D0 7727 clr R23
01D2 L31:
01D2 1601 movw R2,R12
01D4 2A20 and R2,R10
01D6 3B20 and R3,R11
01D8 2622 and R2,R22
01DA 3722 and R3,R23
01DC 2220 tst R2
01DE 11F4 brne X2
01E0 3320 tst R3
01E2 11F0 breq L24
01E4 X2:
01E4 .dbline 99
01E4 ; {
01E4 .dbline 100
01E4 ; tt=' ';
01E4 40E2 ldi R20,32
01E6 .dbline 101
01E6 ; }
01E6 04C0 xjmp L25
01E8 L24:
01E8 .dbline 103
01E8 ; else
01E8 ; {
01E8 .dbline 104
01E8 ; flag=1;
01E8 0024 clr R0
01EA 0394 inc R0
01EC 0E82 std y+6,R0
01EE .dbline 105
01EE ; tt+=0x30;
01EE 405D subi R20,208 ; addi 48
01F0 .dbline 106
01F0 ; }
01F0 L25:
01F0 .dbline 107
01F0 ; x+=8;
01F0 8989 ldd R24,y+17
01F2 9A89 ldd R25,y+18
01F4 0896 adiw R24,8
01F6 9A8B std y+18,R25
01F8 898B std y+17,R24
01FA .dbline 108
01FA ; Dis_Ascii(x,y,tt,front,back);
01FA 2E2C mov R2,R14
01FC 3324 clr R3
01FE 3D82 std y+5,R3
0200 2C82 std y+4,R2
0202 098C ldd R0,y+25
0204 0A82 std y+2,R0
0206 4883 std y+0,R20
0208 2B89 ldd R18,y+19
020A 8C01 movw R16,R24
020C 0E940000 xcall _Dis_Ascii
0210 .dbline 109
0210 ; if(point==2)
0210 8F89 ldd R24,y+23
0212 8230 cpi R24,2
0214 91F4 brne L32
0216 .dbline 110
0216 ; {
0216 .dbline 111
0216 ; x+=8;
0216 8989 ldd R24,y+17
0218 9A89 ldd R25,y+18
021A 0896 adiw R24,8
021C 9A8B std y+18,R25
021E 898B std y+17,R24
0220 .dbline 112
0220 ; Dis_Ascii(x,y,'.',front,back);
0220 2E2C mov R2,R14
0222 3324 clr R3
0224 3D82 std y+5,R3
0226 2C82 std y+4,R2
0228 098C ldd R0,y+25
022A 0A82 std y+2,R0
022C 8EE2 ldi R24,46
022E 8883 std y+0,R24
0230 2B89 ldd R18,y+19
0232 0989 ldd R16,y+17
0234 1A89 ldd R17,y+18
0236 0E940000 xcall _Dis_Ascii
023A .dbline 113
023A ; }
023A L32:
023A .dbline 114
023A ; tt=temp/10;
023A 2AE0 ldi R18,10
023C 30E0 ldi R19,0
023E 0D89 ldd R16,y+21
0240 1E89 ldd R17,y+22
0242 0E940000 xcall div16u
0246 402F mov R20,R16
0248 .dbline 115
0248 ; temp%=10;
0248 2AE0 ldi R18,10
024A 30E0 ldi R19,0
024C 0D89 ldd R16,y+21
024E 1E89 ldd R17,y+22
0250 0E940000 xcall mod16u
0254 1E8B std y+22,R17
0256 0D8B std y+21,R16
0258 .dbline 116
0258 ; if((tt==0)&(flag==0)&(point!=1))
0258 4423 tst R20
025A 21F4 brne L36
025C 81E0 ldi R24,1
025E 90E0 ldi R25,0
0260 6C01 movw R12,R24
0262 02C0 xjmp L37
0264 L36:
0264 CC24 clr R12
0266 DD24 clr R13
0268 L37:
0268 0E80 ldd R0,y+6
026A 0020 tst R0
026C 21F4 brne L38
026E 81E0 ldi R24,1
0270 90E0 ldi R25,0
0272 5C01 movw R10,R24
0274 02C0 xjmp L39
0276 L38:
0276 AA24 clr R10
0278 BB24 clr R11
027A L39:
027A 8F89 ldd R24,y+23
027C 8130 cpi R24,1
027E 19F0 breq L40
0280 61E0 ldi R22,1
0282 70E0 ldi R23,0
0284 02C0 xjmp L41
0286 L40:
0286 6627 clr R22
0288 7727 clr R23
028A L41:
028A 1601 movw R2,R12
028C 2A20 and R2,R10
028E 3B20 and R3,R11
0290 2622 and R2,R22
0292 3722 and R3,R23
0294 2220 tst R2
0296 11F4 brne X3
0298 3320 tst R3
029A 11F0 breq L34
029C X3:
029C .dbline 117
029C ; {
029C .dbline 118
029C ; tt=' ';
029C 40E2 ldi R20,32
029E .dbline 119
029E ; }
029E 04C0 xjmp L35
02A0 L34:
02A0 .dbline 121
02A0 ; else
02A0 ; {
02A0 .dbline 122
02A0 ; flag=1;
02A0 0024 clr R0
02A2 0394 inc R0
02A4 0E82 std y+6,R0
02A6 .dbline 123
02A6 ; tt+=0x30;
02A6 405D subi R20,208 ; addi 48
02A8 .dbline 124
02A8 ; }
02A8 L35:
02A8 .dbline 125
02A8 ; x+=8;
02A8 8989 ldd R24,y+17
02AA 9A89 ldd R25,y+18
02AC 0896 adiw R24,8
02AE 9A8B std y+18,R25
02B0 898B std y+17,R24
02B2 .dbline 126
02B2 ; Dis_Ascii(x,y,tt,front,back);
02B2 2E2C mov R2,R14
02B4 3324 clr R3
02B6 3D82 std y+5,R3
02B8 2C82 std y+4,R2
02BA 098C ldd R0,y+25
02BC 0A82 std y+2,R0
02BE 4883 std y+0,R20
02C0 2B89 ldd R18,y+19
02C2 8C01 movw R16,R24
02C4 0E940000 xcall _Dis_Ascii
02C8 .dbline 127
02C8 ; if(point==1)
02C8 8F89 ldd R24,y+23
02CA 8130 cpi R24,1
02CC 91F4 brne L42
02CE .dbline 128
02CE ; {
02CE .dbline 129
02CE ; x+=8;
02CE 8989 ldd R24,y+17
02D0 9A89 ldd R25,y+18
02D2 0896 adiw R24,8
02D4 9A8B std y+18,R25
02D6 898B std y+17,R24
02D8 .dbline 130
02D8 ; Dis_Ascii(x,y,'.',front,back);
02D8 2E2C mov R2,R14
02DA 3324 clr R3
02DC 3D82 std y+5,R3
02DE 2C82 std y+4,R2
02E0 098C ldd R0,y+25
02E2 0A82 std y+2,R0
02E4 8EE2 ldi R24,46
02E6 8883 std y+0,R24
02E8 2B89 ldd R18,y+19
02EA 0989 ldd R16,y+17
02EC 1A89 ldd R17,y+18
02EE 0E940000 xcall _Dis_Ascii
02F2 .dbline 131
02F2 ; }
02F2 L42:
02F2 .dbline 132
02F2 ; x+=8;
02F2 8989 ldd R24,y+17
02F4 9A89 ldd R25,y+18
02F6 0896 adiw R24,8
02F8 9A8B std y+18,R25
02FA 898B std y+17,R24
02FC .dbline 133
02FC ; Dis_Ascii(x,y,temp+0x30,front,back);
02FC 2E2C mov R2,R14
02FE 3324 clr R3
0300 3D82 std y+5,R3
0302 2C82 std y+4,R2
0304 098C ldd R0,y+25
0306 0A82 std y+2,R0
0308 8D89 ldd R24,y+21
030A 9E89 ldd R25,y+22
030C C096 adiw R24,48
030E 8883 std y+0,R24
0310 2B89 ldd R18,y+19
0312 0989 ldd R16,y+17
0314 1A89 ldd R17,y+18
0316 0E940000 xcall _Dis_Ascii
031A .dbline -2
031A L1:
031A 2796 adiw R28,7
031C 0E940000 xcall pop_gset5
0320 2496 adiw R28,4
0322 .dbline 0 ; func end
0322 0895 ret
0324 .dbsym l flag 6 c
0324 .dbsym r tt 20 c
0324 .dbsym r back 14 c
0324 .dbsym l front 25 c
0324 .dbsym l point 23 c
0324 .dbsym l temp 21 i
0324 .dbsym l y 19 c
0324 .dbsym l x 17 i
0324 .dbend
0324 .dbfunc e DrawLine _DrawLine fV
0324 ; ey -> y+12
0324 ; ex -> y+8
0324 ; sy -> y+4
0324 ; sx -> y+0
0324 ; y -> R10
0324 ; x -> R12,R13
0324 ; color -> y+36
0324 ; y2 -> y+34
0324 ; x2 -> R20,R21
0324 ; y1 -> y+30
0324 ; x1 -> R10,R11
.even
0324 _DrawLine::
0324 3A93 st -y,r19
0326 2A93 st -y,r18
0328 0E940000 xcall push_gset5
032C 5801 movw R10,R16
032E 6497 sbiw R28,20
0330 48A1 ldd R20,y+32
0332 59A1 ldd R21,y+33
0334 .dbline -1
0334 .dbline 144
0334 ; }
0334 ; /*
0334 ; 功能:画直线
0334 ; 参数:(x1,y1) 为起点坐标
0334 ; (x2,y2) 为终点坐标
0334 ; color 为线的颜色
0334 ; 编写者:赫树开
0334 ; 日期:2005.12.1
0334 ; */
0334 ; void DrawLine(unsigned int x1,unsigned char y1,unsigned int x2,unsigned char y2,unsigned char color)
0334 ; {
0334 .dbline 148
0334 ; float sx,sy,ex,ey;
0334 ; unsigned int x;
0334 ; unsigned char y;
0334 ; sx = x1;
0334 00E0 ldi R16,<L45
0336 10E0 ldi R17,>L45
0338 0E940000 xcall elpm32
033C 3A93 st -y,R19
033E 2A93 st -y,R18
0340 1A93 st -y,R17
0342 0A93 st -y,R16
0344 8501 movw R16,R10
0346 1695 lsr R17
0348 0795 ror R16
034A 0E940000 xcall int2fp
034E 3A93 st -y,R19
0350 2A93 st -y,R18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -