📄 main.lis
字号:
047E .dbline 191
047E ; e=f;
047E 20901C00 lds R2,_f
0482 20921B00 sts _e,R2
0486 .dbline 192
0486 ; f=UDR1;
0486 20909C00 lds R2,156
048A 20921C00 sts _f,R2
048E .dbline 193
048E ; if ((f<'0')||(f>'9'))return;
048E 822D mov R24,R2
0490 8033 cpi R24,48
0492 18F0 brlo L33
0494 X12:
0494 89E3 ldi R24,57
0496 8215 cp R24,R2
0498 08F4 brsh L31
049A X13:
049A L33:
049A .dbline 193
049A ECC0 xjmp L17
049C L31:
049C .dbline 194
049C ; if (a=='+')
049C 80911700 lds R24,_a
04A0 8B32 cpi R24,43
04A2 09F0 breq X30
04A4 41C0 xjmp L34
04A6 X30:
04A6 X14:
04A6 .dbline 195
04A6 ; {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
04A6 .dbline 195
04A6 20911900 lds R18,_c
04AA 3327 clr R19
04AC 08EE ldi R16,1000
04AE 13E0 ldi R17,3
04B0 0E940000 xcall empy16s
04B4 C801 movw R24,R16
04B6 8058 subi R24,128
04B8 9B4B sbci R25,187
04BA 20911800 lds R18,_b
04BE 3327 clr R19
04C0 00E1 ldi R16,10000
04C2 17E2 ldi R17,39
04C4 0E940000 xcall empy16s
04C8 F801 movw R30,R16
04CA E050 subi R30,0
04CC F345 sbci R31,83
04CE E80F add R30,R24
04D0 F91F adc R31,R25
04D2 20901A00 lds R2,_d
04D6 84E6 ldi R24,100
04D8 829D mul R24,R2
04DA C001 movw R24,R0
04DC 805C subi R24,192
04DE 9241 sbci R25,18
04E0 E80F add R30,R24
04E2 F91F adc R31,R25
04E4 20901B00 lds R2,_e
04E8 8AE0 ldi R24,10
04EA 829D mul R24,R2
04EC C001 movw R24,R0
04EE 805E subi R24,224
04F0 9140 sbci R25,1
04F2 E80F add R30,R24
04F4 F91F adc R31,R25
04F6 80911C00 lds R24,_f
04FA 9927 clr R25
04FC C097 sbiw R24,48
04FE E80F add R30,R24
0500 F91F adc R31,R25
0502 1F01 movw R2,R30
0504 4424 clr R4
0506 37FC sbrc R3,7
0508 4094 com R4
050A 5524 clr R5
050C 47FC sbrc R4,7
050E 5094 com R5
0510 30922200 sts _juli+1,R3
0514 20922100 sts _juli,R2
0518 50922400 sts _juli+2+1,R5
051C 40922300 sts _juli+2,R4
0520 .dbline 196
0520 ; all=0;return;}
0520 2224 clr R2
0522 20921600 sts _all,R2
0526 .dbline 196
0526 A6C0 xjmp L17
0528 L34:
0528 .dbline 197
0528 ; else if (a=='-')
0528 80911700 lds R24,_a
052C 8D32 cpi R24,45
052E 09F0 breq X31
0530 46C0 xjmp L36
0532 X31:
0532 X15:
0532 .dbline 198
0532 ; {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
0532 .dbline 198
0532 20911900 lds R18,_c
0536 3327 clr R19
0538 08EE ldi R16,1000
053A 13E0 ldi R17,3
053C 0E940000 xcall empy16s
0540 C801 movw R24,R16
0542 8058 subi R24,128
0544 9B4B sbci R25,187
0546 20911800 lds R18,_b
054A 3327 clr R19
054C 00E1 ldi R16,10000
054E 17E2 ldi R17,39
0550 0E940000 xcall empy16s
0554 F801 movw R30,R16
0556 E050 subi R30,0
0558 F345 sbci R31,83
055A E80F add R30,R24
055C F91F adc R31,R25
055E 20901A00 lds R2,_d
0562 84E6 ldi R24,100
0564 829D mul R24,R2
0566 C001 movw R24,R0
0568 805C subi R24,192
056A 9241 sbci R25,18
056C E80F add R30,R24
056E F91F adc R31,R25
0570 20901B00 lds R2,_e
0574 8AE0 ldi R24,10
0576 829D mul R24,R2
0578 C001 movw R24,R0
057A 805E subi R24,224
057C 9140 sbci R25,1
057E E80F add R30,R24
0580 F91F adc R31,R25
0582 80911C00 lds R24,_f
0586 9927 clr R25
0588 C097 sbiw R24,48
058A E80F add R30,R24
058C F91F adc R31,R25
058E CF01 movw R24,R30
0590 8095 com R24
0592 9095 com R25
0594 8F5F subi R24,0xFF
0596 9F4F sbci R25,0xFF
0598 1C01 movw R2,R24
059A 4424 clr R4
059C 37FC sbrc R3,7
059E 4094 com R4
05A0 5524 clr R5
05A2 47FC sbrc R4,7
05A4 5094 com R5
05A6 30922200 sts _juli+1,R3
05AA 20922100 sts _juli,R2
05AE 50922400 sts _juli+2+1,R5
05B2 40922300 sts _juli+2,R4
05B6 .dbline 199
05B6 ; all=0;return;}
05B6 2224 clr R2
05B8 20921600 sts _all,R2
05BC .dbline 199
05BC 5BC0 xjmp L17
05BE L36:
05BE .dbline 200
05BE ; if (a!=0) {all=0;return;}
05BE 20901700 lds R2,_a
05C2 2220 tst R2
05C4 09F4 brne X32
05C6 56C0 xjmp L30
05C8 X32:
05C8 X16:
05C8 .dbline 200
05C8 .dbline 200
05C8 2224 clr R2
05CA 20921600 sts _all,R2
05CE .dbline 200
05CE 52C0 xjmp L17
05D0 L29:
05D0 .dbline 203
05D0 ; //PORTF=a;
05D0 ; }
05D0 ; else if (all==0)//(johu!=3)&&(johu!=5) //5:7-bit 3:8-bit
05D0 20901600 lds R2,_all
05D4 2220 tst R2
05D6 09F0 breq X33
05D8 4DC0 xjmp L40
05DA X33:
05DA X17:
05DA .dbline 204
05DA ; {
05DA .dbline 205
05DA ; a=b;
05DA 20901800 lds R2,_b
05DE 20921700 sts _a,R2
05E2 .dbline 206
05E2 ; b=c;
05E2 20901900 lds R2,_c
05E6 20921800 sts _b,R2
05EA .dbline 207
05EA ; c=d;
05EA 20901A00 lds R2,_d
05EE 20921900 sts _c,R2
05F2 .dbline 208
05F2 ; d=UDR1;
05F2 20909C00 lds R2,156
05F6 20921A00 sts _d,R2
05FA .dbline 209
05FA ; if ((a=='c')&&(b=='i')&&(c=='r'))
05FA 80911700 lds R24,_a
05FE 8336 cpi R24,99
0600 C9F4 brne L42
0602 X18:
0602 80911800 lds R24,_b
0606 8936 cpi R24,105
0608 A9F4 brne L42
060A X19:
060A 80911900 lds R24,_c
060E 8237 cpi R24,114
0610 89F4 brne L42
0612 X20:
0612 .dbline 210
0612 ; {
0612 .dbline 211
0612 ; all=CIR;
0612 81E0 ldi R24,1
0614 80931600 sts _all,R24
0618 .dbline 212
0618 ; a=0;b=0;c=0;d=0;e=0;f=0;
0618 2224 clr R2
061A 20921700 sts _a,R2
061E .dbline 212
061E 20921800 sts _b,R2
0622 .dbline 212
0622 20921900 sts _c,R2
0626 .dbline 212
0626 20921A00 sts _d,R2
062A .dbline 212
062A 20921B00 sts _e,R2
062E .dbline 212
062E 20921C00 sts _f,R2
0632 .dbline 213
0632 ; return; }//RXlen=4;{johu=3;RXlen=3;return;}
0632 20C0 xjmp L17
0634 L42:
0634 .dbline 214
0634 ; else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
0634 80911700 lds R24,_a
0638 8C36 cpi R24,108
063A E1F4 brne L44
063C X21:
063C 80911800 lds R24,_b
0640 8936 cpi R24,105
0642 C1F4 brne L44
0644 X22:
0644 80911900 lds R24,_c
0648 8E36 cpi R24,110
064A A1F4 brne L44
064C X23:
064C 80911A00 lds R24,_d
0650 8536 cpi R24,101
0652 81F4 brne L44
0654 X24:
0654 .dbline 215
0654 ; {
0654 .dbline 216
0654 ; all=LINE;
0654 82E0 ldi R24,2
0656 80931600 sts _all,R24
065A .dbline 217
065A ; a=0;b=0;c=0;d=0;e=0;f=0;
065A 2224 clr R2
065C 20921700 sts _a,R2
0660 .dbline 217
0660 20921800 sts _b,R2
0664 .dbline 217
0664 20921900 sts _c,R2
0668 .dbline 217
0668 20921A00 sts _d,R2
066C .dbline 217
066C 20921B00 sts _e,R2
0670 .dbline 217
0670 20921C00 sts _f,R2
0674 .dbline 218
0674 ; return; }//RXlen=4;{johu=5;RXlen=3;return;}
0674 L44:
0674 .dbline 220
0674 ; ////////////////////////////////////////////////////////////////////
0674 ; }
0674 L40:
0674 L30:
0674 L19:
0674 .dbline -2
0674 L17:
0674 .dbline 0 ; func end
0674 0990 ld R0,y+
0676 0FBE out 0x3f,R0
0678 F991 ld R31,y+
067A E991 ld R30,y+
067C 9991 ld R25,y+
067E 8991 ld R24,y+
0680 3991 ld R19,y+
0682 2991 ld R18,y+
0684 1991 ld R17,y+
0686 0991 ld R16,y+
0688 5990 ld R5,y+
068A 4990 ld R4,y+
068C 3990 ld R3,y+
068E 2990 ld R2,y+
0690 1990 ld R1,y+
0692 0990 ld R0,y+
0694 1895 reti
0696 .dbend
0696 .dbfunc e number_uart1 _number_uart1 fV
0696 ; n -> y+0
0696 ; huanhang -> y+8
0696 ; NUM -> y+4
.even
0696 _number_uart1::
0696 0E940000 xcall push_arg4
069A 2497 sbiw R28,4
069C .dbline -1
069C .dbline 240
069C ; }
069C ;
069C ;
069C ;
069C ; /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
069C ; {
069C ; char code[]={'0','1','2','3','4','5','6','7','8','9',};
069C ; if (NUM<0)
069C ; {LCD_write_String1(X,Y,"-");NUM=-NUM;}
069C ; else
069C ; {LCD_write_String1(X,Y,"+");}
069C ; X=X+6;
069C ; while(LEN--)
069C ; {
069C ; LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
069C ; NUM=NUM/10;
069C ; }
069C ; }*/
069C ; void number_uart1(long NUM,char huanhang)
069C ; {long n=0;
069C .dbline 240
069C 80E0 ldi R24,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -