📄 main.lis
字号:
.even
00CA _bubble_sort::
00CA 00D0 rcall push_arg4
00CC 00D0 rcall push_gset5
00CE C22E mov R12,R18
00D0 .dbline -1
00D0 .dbline 131
00D0 ; }
00D0 ;
00D0 ;
00D0 ;
00D0 ;
00D0 ;
00D0 ;
00D0 ; void bubble_sort(uint *a,uchar len)
00D0 ; {
00D0 .dbline 134
00D0 ; int j,k;
00D0 ; int temp;
00D0 ; int change=1;
00D0 61E0 ldi R22,1
00D2 70E0 ldi R23,0
00D4 .dbline 136
00D4 ;
00D4 ; for (j=0;(j<len-1)&&change;j++)
00D4 4427 clr R20
00D6 5527 clr R21
00D8 52C0 rjmp L21
00DA L18:
00DA .dbline 137
00DA ; {
00DA .dbline 138
00DA ; change=0;
00DA 6627 clr R22
00DC 7727 clr R23
00DE .dbline 139
00DE ; for (k=j+1;k<len;k++)
00DE CA01 movw R24,R20
00E0 0196 adiw R24,1
00E2 7C01 movw R14,R24
00E4 44C0 rjmp L25
00E6 L22:
00E6 .dbline 140
00E6 ; {
00E6 .dbline 141
00E6 ; if (a[k-1]>a[k])
00E6 02E0 ldi R16,2
00E8 10E0 ldi R17,0
00EA 9701 movw R18,R14
00EC 00D0 rcall empy16s
00EE 1801 movw R2,R16
00F0 F101 movw R30,R2
00F2 0A84 ldd R0,y+10
00F4 1B84 ldd R1,y+11
00F6 E00D add R30,R0
00F8 F11D adc R31,R1
00FA 4080 ldd R4,z+0
00FC 5180 ldd R5,z+1
00FE F101 movw R30,R2
0100 3297 sbiw R30,2
0102 E00D add R30,R0
0104 F11D adc R31,R1
0106 2080 ldd R2,z+0
0108 3180 ldd R3,z+1
010A 4214 cp R4,R2
010C 5304 cpc R5,R3
010E 08F0 brlo X1
0110 2BC0 rjmp L26
0112 X1:
0112 .dbline 142
0112 ; {
0112 .dbline 143
0112 ; change=1;
0112 61E0 ldi R22,1
0114 70E0 ldi R23,0
0116 .dbline 144
0116 ; temp=a[k-1];
0116 02E0 ldi R16,2
0118 10E0 ldi R17,0
011A 9701 movw R18,R14
011C 00D0 rcall empy16s
011E F801 movw R30,R16
0120 3297 sbiw R30,2
0122 0A84 ldd R0,y+10
0124 1B84 ldd R1,y+11
0126 E00D add R30,R0
0128 F11D adc R31,R1
012A A080 ldd R10,z+0
012C B180 ldd R11,z+1
012E .dbline 145
012E ; a[k-1]=a[k];
012E 02E0 ldi R16,2
0130 10E0 ldi R17,0
0132 9701 movw R18,R14
0134 00D0 rcall empy16s
0136 1801 movw R2,R16
0138 F101 movw R30,R2
013A 0A84 ldd R0,y+10
013C 1B84 ldd R1,y+11
013E E00D add R30,R0
0140 F11D adc R31,R1
0142 4080 ldd R4,z+0
0144 5180 ldd R5,z+1
0146 F101 movw R30,R2
0148 3297 sbiw R30,2
014A E00D add R30,R0
014C F11D adc R31,R1
014E 5182 std z+1,R5
0150 4082 std z+0,R4
0152 .dbline 146
0152 ; a[k]=temp;
0152 02E0 ldi R16,2
0154 10E0 ldi R17,0
0156 9701 movw R18,R14
0158 00D0 rcall empy16s
015A F801 movw R30,R16
015C 0A84 ldd R0,y+10
015E 1B84 ldd R1,y+11
0160 E00D add R30,R0
0162 F11D adc R31,R1
0164 B182 std z+1,R11
0166 A082 std z+0,R10
0168 .dbline 147
0168 ; }
0168 L26:
0168 .dbline 148
0168 L23:
0168 .dbline 139
0168 C701 movw R24,R14
016A 0196 adiw R24,1
016C 7C01 movw R14,R24
016E L25:
016E .dbline 139
016E 2C2C mov R2,R12
0170 3324 clr R3
0172 E214 cp R14,R2
0174 F304 cpc R15,R3
0176 0CF4 brge X2
0178 B6CF rjmp L22
017A X2:
017A .dbline 149
017A L19:
017A .dbline 136
017A 4F5F subi R20,255 ; offset = 1
017C 5F4F sbci R21,255
017E L21:
017E .dbline 136
017E 8C2D mov R24,R12
0180 9927 clr R25
0182 0197 sbiw R24,1
0184 4817 cp R20,R24
0186 5907 cpc R21,R25
0188 24F4 brge L28
018A 6030 cpi R22,0
018C 6707 cpc R22,R23
018E 09F0 breq X3
0190 A4CF rjmp L18
0192 X3:
0192 X0:
0192 L28:
0192 .dbline -2
0192 L17:
0192 00D0 rcall pop_gset5
0194 2496 adiw R28,4
0196 .dbline 0 ; func end
0196 0895 ret
0198 .dbsym r j 20 I
0198 .dbsym r change 22 I
0198 .dbsym r temp 10 I
0198 .dbsym r k 14 I
0198 .dbsym r len 12 c
0198 .dbsym l a 10 pi
0198 .dbend
0198 .dbfunc e abcd _abcd fV
0198 ; temp -> y+0
.even
0198 _abcd::
0198 2897 sbiw R28,8
019A .dbline -1
019A .dbline 156
019A ; }
019A ; }
019A ; }
019A ;
019A ;
019A ;
019A ;
019A ; void abcd(void)
019A ; {
019A .dbline 159
019A ; uint temp[4];
019A ;
019A ; if(batt==4)
019A 80911400 lds R24,_batt
019E 8430 cpi R24,4
01A0 39F5 brne L30
01A2 .dbline 160
01A2 ; {
01A2 .dbline 161
01A2 ; temp[0] = V[0];
01A2 20901A00 lds R2,_V
01A6 30901B00 lds R3,_V+1
01AA 3982 std y+1,R3
01AC 2882 std y+0,R2
01AE .dbline 162
01AE ; temp[1] = V[1]-V[0];
01AE 40901C00 lds R4,_V+2
01B2 50901D00 lds R5,_V+2+1
01B6 4218 sub R4,R2
01B8 5308 sbc R5,R3
01BA 5B82 std y+3,R5
01BC 4A82 std y+2,R4
01BE .dbline 163
01BE ; temp[2] = V[2]-V[1];
01BE 20901C00 lds R2,_V+2
01C2 30901D00 lds R3,_V+2+1
01C6 40901E00 lds R4,_V+4
01CA 50901F00 lds R5,_V+4+1
01CE 4218 sub R4,R2
01D0 5308 sbc R5,R3
01D2 5D82 std y+5,R5
01D4 4C82 std y+4,R4
01D6 .dbline 164
01D6 ; temp[3] = V[3]-V[2];
01D6 20901E00 lds R2,_V+4
01DA 30901F00 lds R3,_V+4+1
01DE 40902000 lds R4,_V+6
01E2 50902100 lds R5,_V+6+1
01E6 4218 sub R4,R2
01E8 5308 sbc R5,R3
01EA 5F82 std y+7,R5
01EC 4E82 std y+6,R4
01EE .dbline 165
01EE ; }
01EE 3DC0 rjmp L31
01F0 L30:
01F0 .dbline 166
01F0 ; else if(batt==3)
01F0 80911400 lds R24,_batt
01F4 8330 cpi R24,3
01F6 D9F4 brne L40
01F8 .dbline 167
01F8 ; {
01F8 .dbline 168
01F8 ; temp[0] = V[0];
01F8 20901A00 lds R2,_V
01FC 30901B00 lds R3,_V+1
0200 3982 std y+1,R3
0202 2882 std y+0,R2
0204 .dbline 169
0204 ; temp[1] = V[1]-V[0];
0204 40901C00 lds R4,_V+2
0208 50901D00 lds R5,_V+2+1
020C 4218 sub R4,R2
020E 5308 sbc R5,R3
0210 5B82 std y+3,R5
0212 4A82 std y+2,R4
0214 .dbline 170
0214 ; temp[2] = V[2]-V[1];
0214 20901C00 lds R2,_V+2
0218 30901D00 lds R3,_V+2+1
021C 40901E00 lds R4,_V+4
0220 50901F00 lds R5,_V+4+1
0224 4218 sub R4,R2
0226 5308 sbc R5,R3
0228 5D82 std y+5,R5
022A 4C82 std y+4,R4
022C .dbline 171
022C ; }
022C 1EC0 rjmp L41
022E L40:
022E .dbline 172
022E ; else if(batt==2)
022E 80911400 lds R24,_batt
0232 8230 cpi R24,2
0234 79F4 brne L47
0236 .dbline 173
0236 ; {
0236 .dbline 174
0236 ; temp[0] = V[0];
0236 20901A00 lds R2,_V
023A 30901B00 lds R3,_V+1
023E 3982 std y+1,R3
0240 2882 std y+0,R2
0242 .dbline 175
0242 ; temp[1] = V[1]-V[0];
0242 40901C00 lds R4,_V+2
0246 50901D00 lds R5,_V+2+1
024A 4218 sub R4,R2
024C 5308 sbc R5,R3
024E 5B82 std y+3,R5
0250 4A82 std y+2,R4
0252 .dbline 176
0252 ; }
0252 0BC0 rjmp L48
0254 L47:
0254 .dbline 177
0254 ; else if(batt==1)
0254 80911400 lds R24,_batt
0258 8130 cpi R24,1
025A 09F0 breq X4
025C 66C0 rjmp L29
025E X4:
025E .dbline 178
025E ; {
025E .dbline 179
025E ; temp[0] = V[0];
025E 20901A00 lds R2,_V
0262 30901B00 lds R3,_V+1
0266 3982 std y+1,R3
0268 2882 std y+0,R2
026A .dbline 180
026A ; }
026A .dbline 181
026A ; else return;
026A L52:
026A L48:
026A L41:
026A L31:
026A .dbline 184
026A ;
026A ;
026A ; if(temp[1]<131) flas2 = 1;
026A 8A81 ldd R24,y+2
026C 9B81 ldd R25,y+3
026E 8338 cpi R24,131
0270 E0E0 ldi R30,0
0272 9E07 cpc R25,R30
0274 18F4 brsh L53
0276 .dbline 184
0276 81E0 ldi R24,1
0278 80930200 sts _flas2,R24
027C L53:
027C .dbline 185
027C ; if(temp[2]<131) flas3 = 1;
027C 8C81 ldd R24,y+4
027E 9D81 ldd R25,y+5
0280 8338 cpi R24,131
0282 E0E0 ldi R30,0
0284 9E07 cpc R25,R30
0286 18F4 brsh L56
0288 .dbline 185
0288 81E0 ldi R24,1
028A 80930100 sts _flas3,R24
028E L56:
028E .dbline 186
028E ; if(temp[3]<131) flas4 = 1;
028E 8E81 ldd R24,y+6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -