📄 uart.lis
字号:
007E ; unsigned char i,tempdata,tempdata1,tempdata2,tempdata3,tempdata4,tempdata5;
007E ; unsigned char firstzero=false;
007E 0024 clr R0
0080 0882 std y+0,R0
0082 .dbline 78
0082 ;
0082 ; for(i=0;i<5;i++)
0082 EE24 clr R14
0084 2DC0 rjmp L25
0086 L22:
0086 .dbline 79
0086 ; {
0086 .dbline 80
0086 ; tempdata=intdata%10;
0086 2AE0 ldi R18,10
0088 30E0 ldi R19,0
008A 0E85 ldd R16,y+14
008C 1F85 ldd R17,y+15
008E 00D0 rcall mod16u
0090 C02E mov R12,R16
0092 .dbline 81
0092 ; intdata=intdata/10;
0092 2AE0 ldi R18,10
0094 30E0 ldi R19,0
0096 0E85 ldd R16,y+14
0098 1F85 ldd R17,y+15
009A 00D0 rcall div16u
009C 1F87 std y+15,R17
009E 0E87 std y+14,R16
00A0 .dbline 82
00A0 ; switch(i)
00A0 6E2D mov R22,R14
00A2 7727 clr R23
00A4 6030 cpi R22,0
00A6 6707 cpc R22,R23
00A8 89F0 breq L29
00AA X1:
00AA 6130 cpi R22,1
00AC E0E0 ldi R30,0
00AE 7E07 cpc R23,R30
00B0 79F0 breq L30
00B2 6230 cpi R22,2
00B4 E0E0 ldi R30,0
00B6 7E07 cpc R23,R30
00B8 69F0 breq L31
00BA 6330 cpi R22,3
00BC E0E0 ldi R30,0
00BE 7E07 cpc R23,R30
00C0 59F0 breq L32
00C2 6430 cpi R22,4
00C4 E0E0 ldi R30,0
00C6 7E07 cpc R23,R30
00C8 49F0 breq L33
00CA 09C0 rjmp L27
00CC X2:
00CC .dbline 83
00CC ; {
00CC L29:
00CC .dbline 85
00CC ; case 0:
00CC ; tempdata1=tempdata;
00CC 4C2D mov R20,R12
00CE .dbline 86
00CE ; break;
00CE 07C0 rjmp L27
00D0 L30:
00D0 .dbline 88
00D0 ; case 1:
00D0 ; tempdata2=tempdata;
00D0 C982 std y+1,R12
00D2 .dbline 89
00D2 ; break;
00D2 05C0 rjmp L27
00D4 L31:
00D4 .dbline 91
00D4 ; case 2:
00D4 ; tempdata3=tempdata;
00D4 CA82 std y+2,R12
00D6 .dbline 92
00D6 ; break;
00D6 03C0 rjmp L27
00D8 L32:
00D8 .dbline 94
00D8 ; case 3:
00D8 ; tempdata4=tempdata;
00D8 CB82 std y+3,R12
00DA .dbline 95
00DA ; break;
00DA 01C0 rjmp L27
00DC L33:
00DC .dbline 97
00DC ; case 4:
00DC ; tempdata5=tempdata;
00DC AC2C mov R10,R12
00DE .dbline 98
00DE ; break;
00DE .dbline 100
00DE ; default:
00DE ; break;
00DE L27:
00DE .dbline 104
00DE L23:
00DE .dbline 78
00DE E394 inc R14
00E0 L25:
00E0 .dbline 78
00E0 8E2D mov R24,R14
00E2 8530 cpi R24,5
00E4 80F2 brlo L22
00E6 .dbline 105
00E6 ;
00E6 ; }
00E6 ;
00E6 ; }
00E6 ; if(tempdata5!=0)
00E6 AA20 tst R10
00E8 31F0 breq L34
00EA .dbline 106
00EA ; {
00EA .dbline 107
00EA ; PutChar(tempdata5+48);
00EA 0A2D mov R16,R10
00EC 005D subi R16,208 ; addi 48
00EE 2DD0 rcall _PutChar
00F0 .dbline 108
00F0 ; firstzero=true;
00F0 0024 clr R0
00F2 0394 inc R0
00F4 0882 std y+0,R0
00F6 .dbline 109
00F6 ; }
00F6 L34:
00F6 .dbline 110
00F6 ; if((tempdata4!=0)||firstzero)
00F6 0B80 ldd R0,y+3
00F8 0020 tst R0
00FA 19F4 brne L38
00FC 0880 ldd R0,y+0
00FE 0020 tst R0
0100 31F0 breq L36
0102 L38:
0102 .dbline 111
0102 ; {
0102 .dbline 112
0102 ; PutChar(tempdata4+48);
0102 0B81 ldd R16,y+3
0104 005D subi R16,208 ; addi 48
0106 21D0 rcall _PutChar
0108 .dbline 114
0108 ;
0108 ; firstzero=true;
0108 0024 clr R0
010A 0394 inc R0
010C 0882 std y+0,R0
010E .dbline 115
010E ; }
010E L36:
010E .dbline 116
010E ; if((tempdata3!=0)||firstzero)
010E 0A80 ldd R0,y+2
0110 0020 tst R0
0112 19F4 brne L41
0114 0880 ldd R0,y+0
0116 0020 tst R0
0118 31F0 breq L39
011A L41:
011A .dbline 117
011A ; {
011A .dbline 118
011A ; PutChar(tempdata3+48);
011A 0A81 ldd R16,y+2
011C 005D subi R16,208 ; addi 48
011E 15D0 rcall _PutChar
0120 .dbline 120
0120 ;
0120 ; firstzero=true;
0120 0024 clr R0
0122 0394 inc R0
0124 0882 std y+0,R0
0126 .dbline 122
0126 ;
0126 ; }
0126 L39:
0126 .dbline 123
0126 ; if((tempdata2!=0)||firstzero)
0126 0980 ldd R0,y+1
0128 0020 tst R0
012A 19F4 brne L44
012C 0880 ldd R0,y+0
012E 0020 tst R0
0130 19F0 breq L42
0132 L44:
0132 .dbline 124
0132 ; {
0132 .dbline 125
0132 ; PutChar(tempdata2+48);
0132 0981 ldd R16,y+1
0134 005D subi R16,208 ; addi 48
0136 09D0 rcall _PutChar
0138 .dbline 127
0138 ;
0138 ; }
0138 L42:
0138 .dbline 129
0138 ;
0138 ; PutChar(tempdata1+48);
0138 042F mov R16,R20
013A 005D subi R16,208 ; addi 48
013C 06D0 rcall _PutChar
013E .dbline 130
013E ; PutChar(0x0a);
013E 0AE0 ldi R16,10
0140 04D0 rcall _PutChar
0142 .dbline -2
0142 L21:
0142 2496 adiw R28,4
0144 00D0 rcall pop_gset5
0146 2296 adiw R28,2
0148 .dbline 0 ; func end
0148 0895 ret
014A .dbsym r tempdata1 20 c
014A .dbsym r tempdata5 10 c
014A .dbsym l tempdata4 3 c
014A .dbsym l tempdata3 2 c
014A .dbsym l tempdata2 1 c
014A .dbsym l firstzero 0 c
014A .dbsym r tempdata 12 c
014A .dbsym r i 14 c
014A .dbsym l intdata 14 i
014A .dbend
014A .dbfunc e PutChar _PutChar fV
014A ; c -> R16
.even
014A _PutChar::
014A .dbline -1
014A .dbline 134
014A ; //PutChar(0x0d);
014A ; }
014A ; void PutChar(unsigned char c)
014A ; {
014A L46:
014A .dbline 136
014A L47:
014A .dbline 135
014A ; while ( !(UCSRA & (1<<UDRE)) )
014A 5D9B sbis 0xb,5
014C FECF rjmp L46
014E .dbline 137
014E ; ;
014E ; UDR = c;
014E 0CB9 out 0xc,R16
0150 .dbline -2
0150 L45:
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbsym r c 16 c
0152 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c
0000 L6:
0000 .blkb 10
.area idata
0000 53746172742049415000 .byte 'S,'t,'a,'r,'t,32,'I,'A,'P,0
.area data(ram, con, rel)
000A .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c
000A L5:
000A .blkb 20
.area idata
000A B8BBD3D1C7DA2041544D454741382044 .byte 184,187,211,209,199,218,32,'A,'T,'M,'E,'G,'A,56,32,'D
001A 454D4F00 .byte 'E,'M,'O,0
.area data(ram, con, rel)
001E .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -