📄 m64.lst
字号:
01B3 90200116 LDS R2,b
01B5 92200115 STS a,R2
(0193) b=c;
01B7 90200117 LDS R2,c
01B9 92200116 STS b,R2
(0194) c=d;
01BB 90200118 LDS R2,d
01BD 92200117 STS c,R2
(0195) d=e;
01BF 90200119 LDS R2,e
01C1 92200118 STS d,R2
(0196) e=f;
01C3 9020011A LDS R2,f
01C5 92200119 STS e,R2
(0197) f=UDR1;
01C7 9020009C LDS R2,0x9C
01C9 9220011A STS f,R2
(0198) if ((f<'0')||(f>'9'))return;
01CB 2D82 MOV R24,R2
01CC 3380 CPI R24,0x30
01CD F018 BCS 0x01D1
01CE E389 LDI R24,0x39
01CF 1582 CP R24,R2
01D0 F408 BCC 0x01D2
01D1 C11C RJMP 0x02EE
(0199) if (a=='+')
01D2 91800115 LDS R24,a
01D4 328B CPI R24,0x2B
01D5 F009 BEQ 0x01D7
01D6 C041 RJMP 0x0218
(0200) {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
01D7 91200117 LDS R18,c
01D9 2733 CLR R19
01DA EE08 LDI R16,0xE8
01DB E013 LDI R17,3
01DC 940E067D CALL empy16s
01DE 01C8 MOVW R24,R16
01DF 5880 SUBI R24,0x80
01E0 4B9B SBCI R25,0xBB
01E1 91200116 LDS R18,b
01E3 2733 CLR R19
01E4 E100 LDI R16,0x10
01E5 E217 LDI R17,0x27
01E6 940E067D CALL empy16s
01E8 01F8 MOVW R30,R16
01E9 50E0 SUBI R30,0
01EA 45F3 SBCI R31,0x53
01EB 0FE8 ADD R30,R24
01EC 1FF9 ADC R31,R25
01ED 90200118 LDS R2,d
01EF E684 LDI R24,0x64
01F0 9D82 MUL R24,R2
01F1 01C0 MOVW R24,R0
01F2 5C80 SUBI R24,0xC0
01F3 4192 SBCI R25,0x12
01F4 0FE8 ADD R30,R24
01F5 1FF9 ADC R31,R25
01F6 90200119 LDS R2,e
01F8 E08A LDI R24,0xA
01F9 9D82 MUL R24,R2
01FA 01C0 MOVW R24,R0
01FB 5E80 SUBI R24,0xE0
01FC 4091 SBCI R25,1
01FD 0FE8 ADD R30,R24
01FE 1FF9 ADC R31,R25
01FF 9180011A LDS R24,f
0201 2799 CLR R25
0202 97C0 SBIW R24,0x30
0203 0FE8 ADD R30,R24
0204 1FF9 ADC R31,R25
0205 011F MOVW R2,R30
0206 2444 CLR R4
0207 FC37 SBRC R3,7
0208 9440 COM R4
0209 2455 CLR R5
020A FC47 SBRC R4,7
020B 9450 COM R5
020C 92300120 STS juli+1,R3
020E 9220011F STS juli,R2
0210 92500122 STS juli+3,R5
0212 92400121 STS juli+2,R4
(0201) all=0;return;}
0214 2422 CLR R2
0215 92200114 STS all,R2
0217 C0D6 RJMP 0x02EE
(0202) else if (a=='-')
0218 91800115 LDS R24,a
021A 328D CPI R24,0x2D
021B F009 BEQ 0x021D
021C C045 RJMP 0x0262
(0203) {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
021D 91200117 LDS R18,c
021F 2733 CLR R19
0220 EE08 LDI R16,0xE8
0221 E013 LDI R17,3
0222 940E067D CALL empy16s
0224 01C8 MOVW R24,R16
0225 5880 SUBI R24,0x80
0226 4B9B SBCI R25,0xBB
0227 91200116 LDS R18,b
0229 2733 CLR R19
022A E100 LDI R16,0x10
022B E217 LDI R17,0x27
022C 940E067D CALL empy16s
022E 01F8 MOVW R30,R16
022F 50E0 SUBI R30,0
0230 45F3 SBCI R31,0x53
0231 0FE8 ADD R30,R24
0232 1FF9 ADC R31,R25
0233 90200118 LDS R2,d
0235 E684 LDI R24,0x64
0236 9D82 MUL R24,R2
0237 01C0 MOVW R24,R0
0238 5C80 SUBI R24,0xC0
0239 4192 SBCI R25,0x12
023A 0FE8 ADD R30,R24
023B 1FF9 ADC R31,R25
023C 90200119 LDS R2,e
023E E08A LDI R24,0xA
023F 9D82 MUL R24,R2
0240 01C0 MOVW R24,R0
0241 5E80 SUBI R24,0xE0
0242 4091 SBCI R25,1
0243 0FE8 ADD R30,R24
0244 1FF9 ADC R31,R25
0245 9180011A LDS R24,f
0247 2799 CLR R25
0248 97C0 SBIW R24,0x30
0249 0FE8 ADD R30,R24
024A 1FF9 ADC R31,R25
024B 95E0 COM R30
024C 95F0 COM R31
024D 5FEF SUBI R30,0xFF
024E 4FFF SBCI R31,0xFF
024F 011F MOVW R2,R30
0250 2444 CLR R4
0251 FC37 SBRC R3,7
0252 9440 COM R4
0253 2455 CLR R5
0254 FC47 SBRC R4,7
0255 9450 COM R5
0256 92300120 STS juli+1,R3
0258 9220011F STS juli,R2
025A 92500122 STS juli+3,R5
025C 92400121 STS juli+2,R4
(0204) all=0;return;}
025E 2422 CLR R2
025F 92200114 STS all,R2
0261 C08C RJMP 0x02EE
(0205) if (a!=0) {all=0;return;}
0262 90200115 LDS R2,a
0264 2022 TST R2
0265 F409 BNE 0x0267
0266 C087 RJMP 0x02EE
0267 2422 CLR R2
0268 92200114 STS all,R2
026A C083 RJMP 0x02EE
(0206) //PORTF=a;
(0207) }
(0208) else if (all==0)//(johu!=3)&&(johu!=5) //5:7-bit 3:8-bit
026B 90200114 LDS R2,all
026D 2022 TST R2
026E F009 BEQ 0x0270
026F C07E RJMP 0x02EE
(0209) {
(0210) a=b;
0270 90200116 LDS R2,b
0272 92200115 STS a,R2
(0211) b=c;
0274 90200117 LDS R2,c
0276 92200116 STS b,R2
(0212) c=d;
0278 90200118 LDS R2,d
027A 92200117 STS c,R2
(0213) d=UDR1;
027C 9020009C LDS R2,0x9C
027E 92200118 STS d,R2
(0214) if ((a=='c')&&(b=='i')&&(c=='r'))
0280 91800115 LDS R24,a
0282 3683 CPI R24,0x63
0283 F4C9 BNE 0x029D
0284 91800116 LDS R24,b
0286 3689 CPI R24,0x69
0287 F4A9 BNE 0x029D
0288 91800117 LDS R24,c
028A 3782 CPI R24,0x72
028B F489 BNE 0x029D
(0215) {
(0216) all=CIR;
028C E081 LDI R24,1
028D 93800114 STS all,R24
(0217) a=0;b=0;c=0;d=0;e=0;f=0;
028F 2422 CLR R2
0290 92200115 STS a,R2
0292 92200116 STS b,R2
0294 92200117 STS c,R2
0296 92200118 STS d,R2
0298 92200119 STS e,R2
029A 9220011A STS f,R2
(0218) return; }//RXlen=4;{johu=3;RXlen=3;return;}
029C C051 RJMP 0x02EE
(0219) else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
029D 91800115 LDS R24,a
029F 368C CPI R24,0x6C
02A0 F4E9 BNE 0x02BE
02A1 91800116 LDS R24,b
02A3 3689 CPI R24,0x69
02A4 F4C9 BNE 0x02BE
02A5 91800117 LDS R24,c
02A7 368E CPI R24,0x6E
02A8 F4A9 BNE 0x02BE
02A9 91800118 LDS R24,d
02AB 3685 CPI R24,0x65
02AC F489 BNE 0x02BE
(0220) {
(0221) all=LINE;
02AD E082 LDI R24,2
02AE 93800114 STS all,R24
(0222) a=0;b=0;c=0;d=0;e=0;f=0;
02B0 2422 CLR R2
02B1 92200115 STS a,R2
02B3 92200116 STS b,R2
02B5 92200117 STS c,R2
02B7 92200118 STS d,R2
02B9 92200119 STS e,R2
02BB 9220011A STS f,R2
(0223) return; }//RXlen=4;{johu=5;RXlen=3;return;}
02BD C030 RJMP 0x02EE
(0224) else if ((b=='c')&&(c=='l')&&(d=='s'))
02BE 91800116 LDS R24,b
02C0 3683 CPI R24,0x63
02C1 F561 BNE 0x02EE
02C2 91800117 LDS R24,c
02C4 368C CPI R24,0x6C
02C5 F541 BNE 0x02EE
02C6 91800118 LDS R24,d
02C8 3783 CPI R24,0x73
02C9 F521 BNE 0x02EE
(0225) {
(0226) xx=0;
02CA E040 LDI R20,0
02CB E050 LDI R21,0
02CC E060 LDI R22,0
02CD E070 LDI R23,0
02CE 93500107 STS xx+1,R21
02D0 93400106 STS xx,R20
02D2 93700109 STS xx+3,R23
02D4 93600108 STS xx+2,R22
(0227) jiaodu=0;
02D6 E040 LDI R20,0
02D7 E050 LDI R21,0
02D8 E060 LDI R22,0
02D9 E070 LDI R23,0
02DA 9350011C STS jiaodu+1,R21
02DC 9340011B STS jiaodu,R20
02DE 9370011E STS jiaodu+3,R23
02E0 9360011D STS jiaodu+2,R22
(0228) juli=0;
02E2 E040 LDI R20,0
02E3 E050 LDI R21,0
02E4 E060 LDI R22,0
02E5 E070 LDI R23,0
02E6 93500120 STS juli+1,R21
02E8 9340011F STS juli,R20
02EA 93700122 STS juli+3,R23
02EC 93600121 STS juli+2,R22
(0229) }
(0230) ////////////////////////////////////////////////////////////////////
(0231) }
02EE 940E068D CALL pop_gset2
02F0 9009 LD R0,Y+
02F1 BE0F OUT 0x3F,R0
02F2 91F9 LD R31,Y+
02F3 91E9 LD R30,Y+
02F4 9199 LD R25,Y+
02F5 9189 LD R24,Y+
02F6 9139 LD R19,Y+
02F7 9129 LD R18,Y+
02F8 9119 LD R17,Y+
02F9 9109 LD R16,Y+
02FA 9059 LD R5,Y+
02FB 9049 LD R4,Y+
02FC 9039 LD R3,Y+
02FD 9029 LD R2,Y+
02FE 9019 LD R1,Y+
02FF 9009 LD R0,Y+
0300 9518 RETI
_number_uart1:
n --> Y+0
huanhang --> R10
NUM --> Y+10
0301 940E05CD CALL push_arg4
0303 940E0697 CALL push_gset3
0305 9724 SBIW R28,4
0306 84AE LDD R10,Y+14
(0232) }
(0233)
(0234)
(0235)
(0236) /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
(0237) {
(0238) char code[]={'0','1','2','3','4','5','6','7','8','9',};
(0239) if (NUM<0)
(0240) {LCD_write_String1(X,Y,"-");NUM=-NUM;}
(0241) else
(0242) {LCD_write_String1(X,Y,"+");}
(0243) X=X+6;
(0244) while(LEN--)
(0245) {
(0246) LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
(0247) NUM=NUM/10;
(0248) }
(0249) }*/
(0250) void number_uart1(long NUM,char huanhang)
(0251) {long n=0;
0307 E040 LDI R20,0
0308 E050 LDI R21,0
0309 E060 LDI R22,0
030A E070 LDI R23,0
030B 01FE MOVW R30,R28
030C 8340 STD Z+0,R20
030D 8351 STD Z+1,R21
030E 8362 STD Z+2,R22
030F 8373 STD Z+3,R23
(0252) if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
0310 E040 LDI R20,0
0311 E050 LDI R21,0
0312 E060 LDI R22,0
0313 E070 LDI R23,0
0314 01FE MOVW R30,R28
0315 8422 LDD R2,Z+10
0316 8433 LDD R3,Z+11
0317 8444 LDD R4,Z+12
0318 8455 LDD R5,Z+13
0319 1624 CP R2,R20
031A 0635 CPC R3,R21
031B 0646 CPC R4,R22
031C 0657 CPC R5,R23
031D F4A4 BGE 0x0332
031E 01FE MOVW R30,R28
031F 8502 LDD R16,Z+10
0320 8513 LDD R17,Z+11
0321 8524 LDD R18,Z+12
0322 8535 LDD R19,Z+13
0323 940E06B2 CALL neg32
0325 01FE MOVW R30,R28
0326 8300 STD Z+0,R16
0327 8311 STD Z+1,R17
0328 8322 STD Z+2,R18
0329 8333 STD Z+3,R19
032A 9020009B LDS R2,0x9B
032C FE25 SBRS R2,5
032D CFFC RJMP 0x032A
032E E28D LDI R24,0x2D
032F 9380009C STS 0x9C,R24
0331 C011 RJMP 0x0343
(0253) else {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}
0332 01FE MOVW R30,R28
0333 8422 LDD R2,Z+10
0334 8433 LDD R3,Z+11
0335 8444 LDD R4,Z+12
0336 8455 LDD R5,Z+13
0337 01FE MOVW R30,R28
0338 8220 STD Z+0,R2
0339 8231 STD Z+1,R3
033A 8242 STD Z+2,R4
033B 8253 STD Z+3,R5
033C 9020009B LDS R2,0x9B
033E FE25 SBRS R2,5
033F CFFC RJMP 0x033C
0340 E28B LDI R24,0x2B
0341 9380009C STS 0x9C,R24
(0254) while(!(UCSR1A&(1<<UDRE1)));
0343 9020009B LDS R2,0x9B
0345 FE25 SBRS R2,5
0346 CFFC RJMP 0x0343
(0255) UDR1=(n/10000)%10+48;
0347 E140 LDI R20,0x10
0348 E257 LDI R21,0x27
0349 E060 LDI R22,0
034A E070 LDI R23,0
034B 01FE MOVW R30,R28
034C 8020 LDD R2,Z+0
034D 8031 LDD R3,Z+1
034E 8042 LDD R4,Z+2
034F 8053 LDD R5,Z+3
0350 937A ST R23,-Y
0351 936A ST R22,-Y
0352 935A ST R21,-Y
0353 934A ST R20,-Y
0354 0181 MOVW R16,R2
0355 0192 MOVW R18,R4
0356 940E0612 CALL div32s
0358 E04A LDI R20,0xA
0359 E050 LDI R21,0
035A E060 LDI R22,0
035B E070 LDI R23,0
035C 937A ST R23,-Y
035D 936A ST R22,-Y
035E 935A ST R21,-Y
035F 934A ST R20,-Y
0360 940E0614 CALL mod32s
0362 0118 MOVW R2,R16
0363 0129 MOVW R4,R18
0364 E340 LDI R20,0x30
0365 E050 LDI R21,0
0366 E060 LDI R22,0
0367 E070 LDI R23,0
0368 0E24 ADD R2,R20
0369 1E35 ADC R3,R21
036A 1E46 ADC R4,R22
036B 1E57 ADC R5,R23
036C 9220009C STS 0x9C,R2
(0256) while(!(UCSR1A&(1<<UDRE1)));
036E 9020009B LDS R2,0x9B
0370 FE25 SBRS R2,5
0371 CFFC RJMP 0x036E
(0257) UDR1=(n/1000)%10+48;
0372 EE48 LDI R20,0xE8
0373 E053 LDI R21,3
0374 E060 LDI R22,0
0375 E070 LDI R23,0
0376 01FE MOVW R30,R28
0377 8020 LDD R2,Z+0
0378 8031 LDD R3,Z+1
0379 8042 LDD R4,Z+2
037A 8053 LDD R5,Z+3
037B 937A ST R23,-Y
037C 936A ST R22,-Y
037D 935A ST R21,-Y
037E 934A ST R20,-Y
037F 0181 MOVW R16,R2
0380 0192 MOVW R18,R4
0381 940E0612 CALL div32s
0383 E04A LDI R20,0xA
0384 E050 LDI R21,0
0385 E060 LDI R22,0
0386 E070 LDI R23,0
0387 937A ST R23,-Y
0388 936A ST R22,-Y
0389 935A ST R21,-Y
038A 934A ST R20,-Y
038B 940E0614 CALL mod32s
038D 0118 MOVW R2,R16
038E 0129 MOVW R4,R18
038F E340 LDI R20,0x30
0390 E050 LDI R21,0
0391 E060 LDI R22,0
0392 E070 LDI R23,0
0393 0E24 ADD R2,R20
0394 1E35 ADC R3,R21
0395 1E46 ADC R4,R22
0396 1E57 ADC R5,R23
0397 9220009C STS 0x9C,R2
(0258) while(!(UCSR1A&(1<<UDRE1)));
0399 9020009B LDS R2,0x9B
039B FE25 SBRS R2,5
039C CFFC RJMP 0x0399
(0259) UDR1=(n/100)%10+48;
039D E644 LDI R20,0x64
039E E050 LDI R21,0
039F E060 LDI R22,0
03A0 E070 LDI R23,0
03A1 01FE MOVW R30,R28
03A2 8020 LDD R2,Z+0
03A3 8031 LDD R3,Z+1
03A4 8042 LDD R4,Z+2
03A5 8053 LDD R5,Z+3
03A6 937A ST R23,-Y
03A7 936A ST R22,-Y
03A8 935A ST R21,-Y
03A9 934A ST R20,-Y
03AA 0181 MOVW R16,R2
03AB 0192 MOVW R18,R4
03AC 940E0612 CALL div32s
03AE E04A LDI R20,0xA
03AF E050 LDI R21,0
03B0 E060 LDI R22,0
03B1 E070 LDI R23,0
03B2 937A ST R23,-Y
03B3 936A ST R22,-Y
03B4 935A ST R21,-Y
03B5 934A ST R20,-Y
03B6 940E0614 CALL mod32s
03B8 0118 MOVW R2,R16
03B9 0129 MOVW R4,R18
03BA E340 LDI R20,0x30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -