📄 jianpan.lis
字号:
049C L89:
049C .dbline 322
049C ; for( i = 0; i < 5; i ++ ) { display(); } //延时
049C 8A2D mov R24,R10
049E 8530 cpi R24,5
04A0 D8F3 brlo L86
04A2 .dbline 324
04A2 ; //backspace
04A2 ; if((KeySet[KeyIndex]==1|(KeySet[KeyIndex]==2))&&(flag==STATE))
04A2 80E0 ldi R24,<_KeySet
04A4 90E0 ldi R25,>_KeySet
04A6 E42F mov R30,R20
04A8 FF27 clr R31
04AA E80F add R30,R24
04AC F91F adc R31,R25
04AE E491 lpm R30,Z
04B0 E130 cpi R30,1
04B2 21F4 brne L92
04B4 81E0 ldi R24,1
04B6 90E0 ldi R25,0
04B8 6C01 movw R12,R24
04BA 02C0 xjmp L93
04BC L92:
04BC CC24 clr R12
04BE DD24 clr R13
04C0 L93:
04C0 80E0 ldi R24,<_KeySet
04C2 90E0 ldi R25,>_KeySet
04C4 E42F mov R30,R20
04C6 FF27 clr R31
04C8 E80F add R30,R24
04CA F91F adc R31,R25
04CC E491 lpm R30,Z
04CE E230 cpi R30,2
04D0 21F4 brne L94
04D2 81E0 ldi R24,1
04D4 90E0 ldi R25,0
04D6 5C01 movw R10,R24
04D8 02C0 xjmp L95
04DA L94:
04DA AA24 clr R10
04DC BB24 clr R11
04DE L95:
04DE 1601 movw R2,R12
04E0 2A28 or R2,R10
04E2 3B28 or R3,R11
04E4 2220 tst R2
04E6 11F4 brne X8
04E8 3320 tst R3
04EA D9F0 breq L90
04EC X8:
04EC 6F30 cpi R22,15
04EE C9F4 brne L90
04F0 .dbline 325
04F0 ; {
04F0 .dbline 326
04F0 ; trans_buf[0]=KeySet[KeyIndex];
04F0 .dbline 327
04F0 ; flag=1;
04F0 .dbline 328
04F0 ; numH=10*KeySet[KeyIndex]+flag;
04F0 .dbline 329
04F0 ; NumBitH=num_bit(numH);
04F0 80E0 ldi R24,<_KeySet
04F2 90E0 ldi R25,>_KeySet
04F4 242E mov R2,R20
04F6 3324 clr R3
04F8 280E add R2,R24
04FA 391E adc R3,R25
04FC F101 movw R30,R2
04FE E491 lpm R30,Z
0500 E0931400 sts _trans_buf,R30
0504 61E0 ldi R22,1
0506 F101 movw R30,R2
0508 E491 lpm R30,Z
050A 8AE0 ldi R24,10
050C 8E9F mul R24,R30
050E 202C mov R2,R0
0510 260E add R2,R22
0512 20920700 sts _numH,R2
0516 022D mov R16,R2
0518 1127 clr R17
051A 72DF xcall _num_bit
051C 00930A00 sts _NumBitH,R16
0520 .dbline 330
0520 ; }
0520 DBC0 xjmp L91
0522 L90:
0522 .dbline 331
0522 ; else if(KeySet[KeyIndex]==3&&(flag==STATE))
0522 80E0 ldi R24,<_KeySet
0524 90E0 ldi R25,>_KeySet
0526 E42F mov R30,R20
0528 FF27 clr R31
052A E80F add R30,R24
052C F91F adc R31,R25
052E E491 lpm R30,Z
0530 E330 cpi R30,3
0532 61F4 brne L96
0534 6F30 cpi R22,15
0536 51F4 brne L96
0538 .dbline 332
0538 ; {
0538 .dbline 333
0538 ; trans_buf[0]=KeySet[KeyIndex];
0538 .dbline 334
0538 ; transmit();
0538 E42F mov R30,R20
053A FF27 clr R31
053C E80F add R30,R24
053E F91F adc R31,R25
0540 E491 lpm R30,Z
0542 E0931400 sts _trans_buf,R30
0546 C1DD xcall _transmit
0548 .dbline 335
0548 ; flag=0xff;
0548 6FEF ldi R22,255
054A .dbline 336
054A ; }
054A C6C0 xjmp L97
054C L96:
054C .dbline 337
054C ; else if((flag>=PAR1)&&(flag<=PAR7)&&( KeySet[KeyIndex]!=ENTER)&&( KeySet[KeyIndex]!=CANCEL))
054C 6130 cpi R22,1
054E 60F1 brlo L98
0550 87E0 ldi R24,7
0552 8617 cp R24,R22
0554 48F1 brlo L98
0556 80E0 ldi R24,<_KeySet
0558 90E0 ldi R25,>_KeySet
055A E42F mov R30,R20
055C FF27 clr R31
055E E80F add R30,R24
0560 F91F adc R31,R25
0562 2490 lpm R2,Z
0564 3324 clr R3
0566 822D mov R24,R2
0568 8F30 cpi R24,15
056A F1F0 breq L98
056C 8C30 cpi R24,12
056E E1F0 breq L98
0570 .dbline 338
0570 ; {
0570 .dbline 339
0570 ; numL=10*numL+KeySet[KeyIndex];
0570 .dbline 340
0570 ; NumBitL=num_bit(numL);
0570 80E0 ldi R24,<_KeySet
0572 90E0 ldi R25,>_KeySet
0574 E42F mov R30,R20
0576 FF27 clr R31
0578 E80F add R30,R24
057A F91F adc R31,R25
057C 2490 lpm R2,Z
057E 3324 clr R3
0580 20910500 lds R18,_numL
0584 30910600 lds R19,_numL+1
0588 0AE0 ldi R16,10
058A 10E0 ldi R17,0
058C 0E940000 xcall empy16s
0590 2801 movw R4,R16
0592 420C add R4,R2
0594 531C adc R5,R3
0596 50920600 sts _numL+1,R5
059A 40920500 sts _numL,R4
059E 8201 movw R16,R4
05A0 2FDF xcall _num_bit
05A2 00930900 sts _NumBitL,R16
05A6 .dbline 341
05A6 ; }
05A6 98C0 xjmp L99
05A8 L98:
05A8 .dbline 342
05A8 ; else if(KeySet[KeyIndex]==CANCEL)
05A8 80E0 ldi R24,<_KeySet
05AA 90E0 ldi R25,>_KeySet
05AC E42F mov R30,R20
05AE FF27 clr R31
05B0 E80F add R30,R24
05B2 F91F adc R31,R25
05B4 E491 lpm R30,Z
05B6 EC30 cpi R30,12
05B8 81F4 brne L100
05BA .dbline 343
05BA ; {
05BA .dbline 344
05BA ; numL = numL/10;
05BA .dbline 345
05BA ; NumBitL = num_bit(numL);
05BA 2AE0 ldi R18,10
05BC 30E0 ldi R19,0
05BE 00910500 lds R16,_numL
05C2 10910600 lds R17,_numL+1
05C6 0E940000 xcall div16u
05CA 10930600 sts _numL+1,R17
05CE 00930500 sts _numL,R16
05D2 16DF xcall _num_bit
05D4 00930900 sts _NumBitL,R16
05D8 .dbline 346
05D8 ; }
05D8 7FC0 xjmp L101
05DA L100:
05DA .dbline 347
05DA ; else if(KeySet[KeyIndex]==ENTER)
05DA 80E0 ldi R24,<_KeySet
05DC 90E0 ldi R25,>_KeySet
05DE E42F mov R30,R20
05E0 FF27 clr R31
05E2 E80F add R30,R24
05E4 F91F adc R31,R25
05E6 E491 lpm R30,Z
05E8 EF30 cpi R30,15
05EA 09F0 breq X10
05EC 3CC0 xjmp L102
05EE X10:
05EE .dbline 348
05EE ; {
05EE .dbline 349
05EE ; trans_buf[flag]=numL;
05EE 80E0 ldi R24,<_trans_buf
05F0 90E0 ldi R25,>_trans_buf
05F2 E62F mov R30,R22
05F4 FF27 clr R31
05F6 E80F add R30,R24
05F8 F91F adc R31,R25
05FA 20900500 lds R2,_numL
05FE 30900600 lds R3,_numL+1
0602 2082 std z+0,R2
0604 .dbline 350
0604 ; flag++;
0604 .dbline 351
0604 ; numH++;
0604 .dbline 352
0604 ; numL=0;
0604 .dbline 353
0604 ; NumBitL=0;
0604 .dbline 354
0604 ; if ((flag==Model1_flag)&&(numH/10==1))//模式1参数个数Model1_flag
0604 6395 inc R22
0606 80910700 lds R24,_numH
060A 8F5F subi R24,255 ; addi 1
060C 80930700 sts _numH,R24
0610 2224 clr R2
0612 3324 clr R3
0614 30920600 sts _numL+1,R3
0618 20920500 sts _numL,R2
061C 20920900 sts _NumBitL,R2
0620 6830 cpi R22,8
0622 71F4 brne L104
0624 1AE0 ldi R17,10
0626 082F mov R16,R24
0628 0E940000 xcall div8u
062C 0130 cpi R16,1
062E 41F4 brne L104
0630 .dbline 355
0630 ; {
0630 .dbline 356
0630 ; flag=0xff;
0630 .dbline 357
0630 ; transmit();
0630 6FEF ldi R22,255
0632 4BDD xcall _transmit
0634 .dbline 358
0634 ; numH=0;
0634 .dbline 359
0634 ; NumBitH=0;
0634 2224 clr R2
0636 20920700 sts _numH,R2
063A 20920A00 sts _NumBitH,R2
063E .dbline 360
063E ; }
063E 4CC0 xjmp L103
0640 L104:
0640 .dbline 361
0640 ; else if ((flag==Model2_flag)&&(numH/10==2))//模式2参数个数Model2_flag
0640 6430 cpi R22,4
0642 09F0 breq X11
0644 49C0 xjmp L103
0646 X11:
0646 1AE0 ldi R17,10
0648 00910700 lds R16,_numH
064C 0E940000 xcall div8u
0650 0230 cpi R16,2
0652 09F0 breq X12
0654 41C0 xjmp L103
0656 X12:
0656 .dbline 362
0656 ; {
0656 .dbline 363
0656 ; flag=0xff;
0656 .dbline 364
0656 ; transmit();
0656 6FEF ldi R22,255
0658 38DD xcall _transmit
065A .dbline 365
065A ; numH=0;
065A .dbline 366
065A ; NumBitH=0;
065A 2224 clr R2
065C 20920700 sts _numH,R2
0660 20920A00 sts _NumBitH,R2
0664 .dbline 367
0664 ; }
0664 .dbline 368
0664 ; }
0664 39C0 xjmp L103
0666 L102:
0666 .dbline 369
0666 ; else if(((KeySet[KeyIndex]!=1)|(KeySet[KeyIndex]!=2)|(KeySet[KeyIndex]!=3))&&(flag==STATE)) {edit();}
0666 80E0 ldi R24,<_KeySet
0668 90E0 ldi R25,>_KeySet
066A E42F mov R30,R20
066C FF27 clr R31
066E E80F add R30,R24
0670 F91F adc R31,R25
0672 E491 lpm R30,Z
0674 E130 cpi R30,1
0676 21F0 breq L110
0678 81E0 ldi R24,1
067A 90E0 ldi R25,0
067C 7C01 movw R14,R24
067E 02C0 xjmp L111
0680 L110:
0680 EE24 clr R14
0682 FF24 clr R15
0684 L111:
0684 80E0 ldi R24,<_KeySet
0686 90E0 ldi R25,>_KeySet
0688 E42F mov R30,R20
068A FF27 clr R31
068C E80F add R30,R24
068E F91F adc R31,R25
0690 E491 lpm R30,Z
0692 E230 cpi R30,2
0694 21F0 breq L112
0696 81E0 ldi R24,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -