📄 toucher2.lis
字号:
016C 0DC0 xjmp L25
016E L28:
016E .dbline 281
016E ; case 0x02:
016E ; {
016E .dbline 282
016E ; write_print(0x50); //P
016E 00E5 ldi R16,80
0170 47DF xcall _write_print
0172 .dbline 283
0172 ; write_print(0x50); //P
0172 00E5 ldi R16,80
0174 45DF xcall _write_print
0176 .dbline 284
0176 ; write_print(0x4d); //M
0176 0DE4 ldi R16,77
0178 43DF xcall _write_print
017A .dbline 285
017A ; }
017A .dbline 286
017A ; break;
017A 06C0 xjmp L25
017C L29:
017C .dbline 288
017C .dbline 289
017C 06E5 ldi R16,86
017E 40DF xcall _write_print
0180 .dbline 290
0180 0FE4 ldi R16,79
0182 3EDF xcall _write_print
0184 .dbline 291
0184 0CE4 ldi R16,76
0186 3CDF xcall _write_print
0188 .dbline 292
0188 .dbline 293
0188 .dbline 295
0188 L25:
0188 .dbline -2
0188 L23:
0188 0E940000 xcall pop_gset1
018C .dbline 0 ; func end
018C 0895 ret
018E .dbend
018E .dbfunc e print1 _print1 fV
018E ; temp1 -> R10,R11
018E ; temp -> y+0
018E ; temp2 -> R12,R13
018E ; temp3 -> R14,R15
018E ; q -> R20
018E ; p -> R22
018E ; num -> y+15
.even
018E _print1::
018E 1A93 st -y,r17
0190 0A93 st -y,r16
0192 0E940000 xcall push_gset5
0196 2597 sbiw R28,5
0198 .dbline -1
0198 .dbline 300
0198 ; case 0x03:
0198 ; {
0198 ; write_print(0x56); //V
0198 ; write_print(0x4f); //O
0198 ; write_print(0x4c); //L
0198 ; }
0198 ; break;
0198 ; default:
0198 ; break;
0198 ; }
0198 ; }
0198 ; /***********************打印格式1*****************************/
0198 ; void print1(uint num)
0198 ; {
0198 .dbline 301
0198 ; uchar p=0,q=0;
0198 6627 clr R22
019A .dbline 301
019A 4427 clr R20
019C .dbline 303
019C ; uchar temp[5];
019C ; uint temp1=0,temp2=0;
019C AA24 clr R10
019E BB24 clr R11
01A0 .dbline 303
01A0 CC24 clr R12
01A2 DD24 clr R13
01A4 .dbline 304
01A4 ; uint temp3=0;
01A4 EE24 clr R14
01A6 FF24 clr R15
01A8 .dbline 305
01A8 ; temp2=num;
01A8 CF84 ldd R12,y+15
01AA D888 ldd R13,y+16
01AC .dbline 306
01AC ; temp3=10000;
01AC 80E1 ldi R24,10000
01AE 97E2 ldi R25,39
01B0 7C01 movw R14,R24
01B2 .dbline 307
01B2 ; for(p=0;p<5;p++)
01B2 19C0 xjmp L35
01B4 L32:
01B4 .dbline 308
01B4 .dbline 309
01B4 9701 movw R18,R14
01B6 8601 movw R16,R12
01B8 0E940000 xcall div16u
01BC 5801 movw R10,R16
01BE .dbline 310
01BE 9701 movw R18,R14
01C0 8601 movw R16,R12
01C2 0E940000 xcall mod16u
01C6 6801 movw R12,R16
01C8 .dbline 311
01C8 2AE0 ldi R18,10
01CA 30E0 ldi R19,0
01CC 8701 movw R16,R14
01CE 0E940000 xcall div16u
01D2 7801 movw R14,R16
01D4 .dbline 312
01D4 CE01 movw R24,R28
01D6 E62F mov R30,R22
01D8 FF27 clr R31
01DA E80F add R30,R24
01DC F91F adc R31,R25
01DE C501 movw R24,R10
01E0 C096 adiw R24,48
01E2 8083 std z+0,R24
01E4 .dbline 313
01E4 L33:
01E4 .dbline 307
01E4 6395 inc R22
01E6 L35:
01E6 .dbline 307
01E6 6530 cpi R22,5
01E8 28F3 brlo L32
01EA .dbline 314
01EA ; {
01EA ; temp1=temp2/temp3;
01EA ; temp2=temp2%temp3;
01EA ; temp3=temp3/10;
01EA ; temp[p]=(uchar)(temp1+0x30);
01EA ; }
01EA ; wdr();
01EA 0E940000 xcall _wdr
01EE .dbline 317
01EE ; //功能: 将一个uint型的数显示出来,但是第一个非零数字前的零要省略
01EE ;
01EE ; for(p=0;p<4;p++)
01EE 6627 clr R22
01F0 0AC0 xjmp L39
01F2 L36:
01F2 .dbline 318
01F2 ; {
01F2 .dbline 319
01F2 ; if(temp[p]!=0x30)
01F2 CE01 movw R24,R28
01F4 E62F mov R30,R22
01F6 FF27 clr R31
01F8 E80F add R30,R24
01FA F91F adc R31,R25
01FC 8081 ldd R24,z+0
01FE 8033 cpi R24,48
0200 09F0 breq L40
0202 .dbline 320
0202 ; break;
0202 03C0 xjmp L38
0204 L40:
0204 .dbline 321
0204 L37:
0204 .dbline 317
0204 6395 inc R22
0206 L39:
0206 .dbline 317
0206 6430 cpi R22,4
0208 A0F3 brlo L36
020A L38:
020A .dbline 322
020A ; }
020A ; for(q=0;q<p;q++)
020A 4427 clr R20
020C 03C0 xjmp L45
020E L42:
020E .dbline 323
020E .dbline 324
020E 00E2 ldi R16,32
0210 F7DE xcall _write_print
0212 .dbline 325
0212 L43:
0212 .dbline 322
0212 4395 inc R20
0214 L45:
0214 .dbline 322
0214 4617 cp R20,R22
0216 D8F3 brlo L42
0218 .dbline 326
0218 ; {
0218 ; write_print(0x20);
0218 ; }
0218 ; for(q=p;q<5;q++)
0218 462F mov R20,R22
021A 08C0 xjmp L49
021C L46:
021C .dbline 327
021C .dbline 328
021C CE01 movw R24,R28
021E E42F mov R30,R20
0220 FF27 clr R31
0222 E80F add R30,R24
0224 F91F adc R31,R25
0226 0081 ldd R16,z+0
0228 EBDE xcall _write_print
022A .dbline 329
022A L47:
022A .dbline 326
022A 4395 inc R20
022C L49:
022C .dbline 326
022C 4530 cpi R20,5
022E B0F3 brlo L46
0230 .dbline -2
0230 L31:
0230 2596 adiw R28,5
0232 0E940000 xcall pop_gset5
0236 2296 adiw R28,2
0238 .dbline 0 ; func end
0238 0895 ret
023A .dbsym r temp1 10 i
023A .dbsym l temp 0 A[5:5]c
023A .dbsym r temp2 12 i
023A .dbsym r temp3 14 i
023A .dbsym r q 20 c
023A .dbsym r p 22 c
023A .dbsym l num 15 i
023A .dbend
023A .dbfunc e date_print _date_print fV
023A ; temp2 -> R20
023A ; temp1 -> R10
023A ; temp -> R22
.even
023A _date_print::
023A 0E940000 xcall push_gset3
023E 602F mov R22,R16
0240 .dbline -1
0240 .dbline 333
0240 ; {
0240 ; write_print(temp[q]);
0240 ; }
0240 ; }
0240 ; /***********************时间处理打印函数*********************/
0240 ; void date_print(uchar temp) //时钟处理函数
0240 ; {
0240 .dbline 334
0240 ; uchar temp1=0;
0240 AA24 clr R10
0242 .dbline 335
0242 ; uchar temp2=0;
0242 4427 clr R20
0244 .dbline 336
0244 ; temp1=temp>>4;
0244 862F mov R24,R22
0246 8295 swap R24
0248 8F70 andi R24,#0x0F
024A .dbline 337
024A ; temp1=temp1+0x30;
024A 805D subi R24,208 ; addi 48
024C A82E mov R10,R24
024E .dbline 338
024E ; write_print(temp1); //打印
024E 082F mov R16,R24
0250 D7DE xcall _write_print
0252 .dbline 339
0252 ; temp2=temp&0x0f; //取年\月\日\时\分\秒的低四位
0252 462F mov R20,R22
0254 4F70 andi R20,15
0256 .dbline 340
0256 ; temp2=temp2+0x30;
0256 405D subi R20,208 ; addi 48
0258 .dbline 341
0258 ; write_print(temp2); //打印
0258 042F mov R16,R20
025A D2DE xcall _write_print
025C .dbline -2
025C L50:
025C 0E940000 xcall pop_gset3
0260 .dbline 0 ; func end
0260 0895 ret
0262 .dbsym r temp2 20 c
0262 .dbsym r temp1 10 c
0262 .dbsym r temp 22 c
0262 .dbend
0262 .dbfunc e num_print _num_print fV
0262 ; temp2 -> R20
0262 ; temp1 -> R22
0262 ; temp -> R10
.even
0262 _num_print::
0262 0E940000 xcall push_gset3
0266 A02E mov R10,R16
0268 .dbline -1
0268 .dbline 346
0268 ; }
0268 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -