📄 uart.lis
字号:
0092 .dbend
0092 .dbfunc e buffer2str _buffer2str fpc
0092 ; i -> R20
0092 ; hhh -> R16,R17
.even
0092 _buffer2str::
0092 0E940000 xcall push_gset1
0096 .dbline -1
0096 .dbline 84
0096 ; }
0096 ;
0096 ; //-----------------------------------------------------------
0096 ; //数组转换成可发送的字符串
0096 ; //-----------------------------------------------------------
0096 ; char *buffer2str(char *hhh)
0096 ; {
0096 .dbline 85
0096 ; unsigned char i=0;
0096 4427 clr R20
0098 09C0 xjmp L23
009A L22:
009A .dbline 88
009A .dbline 89
009A 242E mov R2,R20
009C 3324 clr R3
009E 200E add R2,R16
00A0 311E adc R3,R17
00A2 F101 movw R30,R2
00A4 8081 ldd R24,z+0
00A6 805D subi R24,208 ; addi 48
00A8 8083 std z+0,R24
00AA .dbline 90
00AA 4395 inc R20
00AC .dbline 91
00AC L23:
00AC .dbline 87
00AC ;
00AC ; while (i<40)
00AC 4832 cpi R20,40
00AE A8F3 brlo L22
00B0 .dbline 92
00B0 ; {
00B0 ; hhh[i]=hhh[i]+48;
00B0 ; i++;
00B0 ; }
00B0 ; return hhh;
00B0 .dbline -2
00B0 L21:
00B0 0E940000 xcall pop_gset1
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbsym r i 20 c
00B6 .dbsym r hhh 16 pc
00B6 .dbend
00B6 .dbfunc e long2str _long2str fpc
00B6 ; ss -> R10,R11
00B6 ; hh -> y+6
.even
00B6 _long2str::
00B6 0E940000 xcall push_arg4
00BA 0E940000 xcall push_gset3
00BE .dbline -1
00BE .dbline 99
00BE ; }
00BE ;
00BE ; //-----------------------------------------------------------
00BE ; //数字转换成可发送的字符串
00BE ; //-----------------------------------------------------------
00BE ; char *long2str(unsigned long hh)
00BE ; {
00BE .dbline 100
00BE ; char *ss=" ";
00BE 80E0 ldi R24,<L26
00C0 90E0 ldi R25,>L26
00C2 5C01 movw R10,R24
00C4 .dbline 102
00C4 ;
00C4 ; ss[0]=48+hh/1000;
00C4 48EE ldi R20,232
00C6 53E0 ldi R21,3
00C8 60E0 ldi R22,0
00CA 70E0 ldi R23,0
00CC FE01 movw R30,R28
00CE 2680 ldd R2,z+6
00D0 3780 ldd R3,z+7
00D2 4084 ldd R4,z+8
00D4 5184 ldd R5,z+9
00D6 7A93 st -y,R23
00D8 6A93 st -y,R22
00DA 5A93 st -y,R21
00DC 4A93 st -y,R20
00DE 8101 movw R16,R2
00E0 9201 movw R18,R4
00E2 0E940000 xcall div32u
00E6 1801 movw R2,R16
00E8 2901 movw R4,R18
00EA 40E3 ldi R20,48
00EC 50E0 ldi R21,0
00EE 60E0 ldi R22,0
00F0 70E0 ldi R23,0
00F2 240E add R2,R20
00F4 351E adc R3,R21
00F6 461E adc R4,R22
00F8 571E adc R5,R23
00FA F501 movw R30,R10
00FC 2082 std z+0,R2
00FE .dbline 103
00FE ; ss[1]=48+(hh%1000)/100;
00FE 48EE ldi R20,232
0100 53E0 ldi R21,3
0102 60E0 ldi R22,0
0104 70E0 ldi R23,0
0106 FE01 movw R30,R28
0108 2680 ldd R2,z+6
010A 3780 ldd R3,z+7
010C 4084 ldd R4,z+8
010E 5184 ldd R5,z+9
0110 7A93 st -y,R23
0112 6A93 st -y,R22
0114 5A93 st -y,R21
0116 4A93 st -y,R20
0118 8101 movw R16,R2
011A 9201 movw R18,R4
011C 0E940000 xcall mod32u
0120 44E6 ldi R20,100
0122 50E0 ldi R21,0
0124 60E0 ldi R22,0
0126 70E0 ldi R23,0
0128 7A93 st -y,R23
012A 6A93 st -y,R22
012C 5A93 st -y,R21
012E 4A93 st -y,R20
0130 0E940000 xcall div32u
0134 1801 movw R2,R16
0136 2901 movw R4,R18
0138 40E3 ldi R20,48
013A 50E0 ldi R21,0
013C 60E0 ldi R22,0
013E 70E0 ldi R23,0
0140 240E add R2,R20
0142 351E adc R3,R21
0144 461E adc R4,R22
0146 571E adc R5,R23
0148 F501 movw R30,R10
014A 2182 std z+1,R2
014C .dbline 104
014C ; ss[2]=48+(hh%100)/10;
014C 44E6 ldi R20,100
014E 50E0 ldi R21,0
0150 60E0 ldi R22,0
0152 70E0 ldi R23,0
0154 FE01 movw R30,R28
0156 2680 ldd R2,z+6
0158 3780 ldd R3,z+7
015A 4084 ldd R4,z+8
015C 5184 ldd R5,z+9
015E 7A93 st -y,R23
0160 6A93 st -y,R22
0162 5A93 st -y,R21
0164 4A93 st -y,R20
0166 8101 movw R16,R2
0168 9201 movw R18,R4
016A 0E940000 xcall mod32u
016E 4AE0 ldi R20,10
0170 50E0 ldi R21,0
0172 60E0 ldi R22,0
0174 70E0 ldi R23,0
0176 7A93 st -y,R23
0178 6A93 st -y,R22
017A 5A93 st -y,R21
017C 4A93 st -y,R20
017E 0E940000 xcall div32u
0182 1801 movw R2,R16
0184 2901 movw R4,R18
0186 40E3 ldi R20,48
0188 50E0 ldi R21,0
018A 60E0 ldi R22,0
018C 70E0 ldi R23,0
018E 240E add R2,R20
0190 351E adc R3,R21
0192 461E adc R4,R22
0194 571E adc R5,R23
0196 F501 movw R30,R10
0198 2282 std z+2,R2
019A .dbline 105
019A ; ss[3]=48+(hh%10);
019A 4AE0 ldi R20,10
019C 50E0 ldi R21,0
019E 60E0 ldi R22,0
01A0 70E0 ldi R23,0
01A2 FE01 movw R30,R28
01A4 2680 ldd R2,z+6
01A6 3780 ldd R3,z+7
01A8 4084 ldd R4,z+8
01AA 5184 ldd R5,z+9
01AC 7A93 st -y,R23
01AE 6A93 st -y,R22
01B0 5A93 st -y,R21
01B2 4A93 st -y,R20
01B4 8101 movw R16,R2
01B6 9201 movw R18,R4
01B8 0E940000 xcall mod32u
01BC 1801 movw R2,R16
01BE 2901 movw R4,R18
01C0 40E3 ldi R20,48
01C2 50E0 ldi R21,0
01C4 60E0 ldi R22,0
01C6 70E0 ldi R23,0
01C8 240E add R2,R20
01CA 351E adc R3,R21
01CC 461E adc R4,R22
01CE 571E adc R5,R23
01D0 F501 movw R30,R10
01D2 2382 std z+3,R2
01D4 .dbline 107
01D4 ;
01D4 ; return ss;
01D4 8501 movw R16,R10
01D6 .dbline -2
01D6 L25:
01D6 0E940000 xcall pop_gset3
01DA 2496 adiw R28,4
01DC .dbline 0 ; func end
01DC 0895 ret
01DE .dbsym r ss 10 pc
01DE .dbsym l hh 6 l
01DE .dbend
.area data(ram, con, rel)
0000 .dbfile C:\AVR_TOOL\test\uart.c
0000 L26:
0000 .blkb 5
.area idata
0000 2020202000 .byte 32,32,32,32,0
.area data(ram, con, rel)
0005 .dbfile C:\AVR_TOOL\test\uart.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -