📄 12232.lis
字号:
01C2 2080 ldd R2,z+0
01C4 3180 ldd R3,z+1
01C6 4280 ldd R4,z+2
01C8 5380 ldd R5,z+3
01CA 8A93 st -y,R24
01CC 8101 movw R16,R2
01CE 9201 movw R18,R4
01D0 00D0 rcall lsr32
01D2 6801 movw R12,R16
01D4 .dbline 159
01D4 ; temp2=location%512;
01D4 4FEF ldi R20,255
01D6 51E0 ldi R21,1
01D8 60E0 ldi R22,0
01DA 70E0 ldi R23,0
01DC FE01 movw R30,R28
01DE 2080 ldd R2,z+0
01E0 3180 ldd R3,z+1
01E2 4280 ldd R4,z+2
01E4 5380 ldd R5,z+3
01E6 2422 and R2,R20
01E8 3522 and R3,R21
01EA 4622 and R4,R22
01EC 5722 and R5,R23
01EE 5101 movw R10,R2
01F0 .dbline 160
01F0 ; start=ClusConvLBA(zikustart);
01F0 00910000 lds R16,_zikustart
01F4 10910100 lds R17,_zikustart+1
01F8 00D0 rcall _ClusConvLBA
01FA FE01 movw R30,R28
01FC 0483 std z+4,R16
01FE 1583 std z+5,R17
0200 2683 std z+6,R18
0202 3783 std z+7,R19
0204 .dbline 161
0204 ; start=start+temp1;
0204 1601 movw R2,R12
0206 4424 clr R4
0208 5524 clr R5
020A FE01 movw R30,R28
020C 6480 ldd R6,z+4
020E 7580 ldd R7,z+5
0210 8680 ldd R8,z+6
0212 9780 ldd R9,z+7
0214 620C add R6,R2
0216 731C adc R7,R3
0218 841C adc R8,R4
021A 951C adc R9,R5
021C FE01 movw R30,R28
021E 6482 std z+4,R6
0220 7582 std z+5,R7
0222 8682 std z+6,R8
0224 9782 std z+7,R9
0226 .dbline 162
0226 ; ReadBlock(start);
0226 FE01 movw R30,R28
0228 0481 ldd R16,z+4
022A 1581 ldd R17,z+5
022C 2681 ldd R18,z+6
022E 3781 ldd R19,z+7
0230 00D0 rcall _ReadBlock
0232 .dbline 163
0232 ; return temp2;
0232 8501 movw R16,R10
0234 .dbline -2
0234 L38:
0234 2896 adiw R28,8
0236 00D0 rcall pop_gset4
0238 .dbline 0 ; func end
0238 0895 ret
023A .dbsym l i 1 c
023A .dbsym r temp2 10 i
023A .dbsym l start 4 l
023A .dbsym r temp1 12 i
023A .dbsym l location 0 l
023A .dbsym r data2 10 c
023A .dbsym r data1 12 c
023A .dbend
023A .dbfunc e show_chin _show_chin fV
023A ; window -> R20
023A ; j -> R22
023A ; loca -> R10
023A ; i -> R14
023A ; p -> R12
023A ; loc -> y+16
023A ; lenth -> y+14
023A ; adress1 -> R14
023A ; chin -> y+10
.even
023A _show_chin::
023A 00D0 rcall push_arg4
023C 00D0 rcall push_gset5
023E E22E mov R14,R18
0240 .dbline -1
0240 .dbline 166
0240 ; }
0240 ; void show_chin(uint8 *chin,uint8 adress1,uint8 lenth,uint8 loc)
0240 ; {
0240 .dbline 167
0240 ; uint8 i,j=0,p,window=0,loca;
0240 6627 clr R22
0242 .dbline 167
0242 4427 clr R20
0244 .dbline 168
0244 ; loca=0;
0244 AA24 clr R10
0246 .dbline 169
0246 ; p=adress1;
0246 CE2C mov R12,R14
0248 .dbline 170
0248 ; if(loc) loca=2;
0248 0888 ldd R0,y+16
024A 0020 tst R0
024C 09F4 brne X0
024E 54C0 rjmp L43
0250 X0:
0250 .dbline 170
0250 82E0 ldi R24,2
0252 A82E mov R10,R24
0254 51C0 rjmp L43
0256 L42:
0256 .dbline 172
0256 ; while(lenth)
0256 ; {
0256 .dbline 173
0256 ; for(i=0;i<32;i++)
0256 EE24 clr R14
0258 45C0 rjmp L48
025A L45:
025A .dbline 174
025A ; {
025A .dbline 175
025A ; if(p>76) window=1,p=p%61;
025A 8CE4 ldi R24,76
025C 8C15 cp R24,R12
025E 28F4 brsh L49
0260 .dbline 175
0260 41E0 ldi R20,1
0262 1DE3 ldi R17,61
0264 0C2D mov R16,R12
0266 00D0 rcall mod8u
0268 C02E mov R12,R16
026A L49:
026A .dbline 176
026A ; if(i<16)
026A 8E2D mov R24,R14
026C 8031 cpi R24,16
026E D0F4 brsh L51
0270 .dbline 177
0270 ; {
0270 .dbline 178
0270 ; SetPage(loca,loca);
0270 2A2D mov R18,R10
0272 0A2D mov R16,R10
0274 3EDF rcall _SetPage
0276 .dbline 179
0276 ; SetAddress(p,p);
0276 2C2D mov R18,R12
0278 0C2D mov R16,R12
027A 46DF rcall _SetAddress
027C .dbline 180
027C ; if(window) PutCharR(chin[j]);
027C 4423 tst R20
027E 49F0 breq L53
0280 .dbline 180
0280 E62F mov R30,R22
0282 FF27 clr R31
0284 0A84 ldd R0,y+10
0286 1B84 ldd R1,y+11
0288 E00D add R30,R0
028A F11D adc R31,R1
028C 0081 ldd R16,z+0
028E 45DF rcall _PutCharR
0290 26C0 rjmp L52
0292 L53:
0292 .dbline 181
0292 ; else PutCharL(chin[j]);
0292 E62F mov R30,R22
0294 FF27 clr R31
0296 0A84 ldd R0,y+10
0298 1B84 ldd R1,y+11
029A E00D add R30,R0
029C F11D adc R31,R1
029E 0081 ldd R16,z+0
02A0 42DF rcall _PutCharL
02A2 .dbline 182
02A2 ; }
02A2 1DC0 rjmp L52
02A4 L51:
02A4 .dbline 184
02A4 ; else
02A4 ; {
02A4 .dbline 185
02A4 ; SetPage(loca+1,loca+1);
02A4 8A2D mov R24,R10
02A6 8F5F subi R24,255 ; addi 1
02A8 282F mov R18,R24
02AA 082F mov R16,R24
02AC 22DF rcall _SetPage
02AE .dbline 186
02AE ; SetAddress(p-16,p-16);
02AE 8C2D mov R24,R12
02B0 8051 subi R24,16
02B2 282F mov R18,R24
02B4 082F mov R16,R24
02B6 28DF rcall _SetAddress
02B8 .dbline 187
02B8 ; if(window) PutCharR(chin[j]);
02B8 4423 tst R20
02BA 49F0 breq L55
02BC .dbline 187
02BC E62F mov R30,R22
02BE FF27 clr R31
02C0 0A84 ldd R0,y+10
02C2 1B84 ldd R1,y+11
02C4 E00D add R30,R0
02C6 F11D adc R31,R1
02C8 0081 ldd R16,z+0
02CA 27DF rcall _PutCharR
02CC 08C0 rjmp L56
02CE L55:
02CE .dbline 188
02CE ; else PutCharL(chin[j]);
02CE E62F mov R30,R22
02D0 FF27 clr R31
02D2 0A84 ldd R0,y+10
02D4 1B84 ldd R1,y+11
02D6 E00D add R30,R0
02D8 F11D adc R31,R1
02DA 0081 ldd R16,z+0
02DC 24DF rcall _PutCharL
02DE L56:
02DE .dbline 189
02DE ; }
02DE L52:
02DE .dbline 190
02DE C394 inc R12
02E0 .dbline 191
02E0 6395 inc R22
02E2 .dbline 192
02E2 L46:
02E2 .dbline 173
02E2 E394 inc R14
02E4 L48:
02E4 .dbline 173
02E4 8E2D mov R24,R14
02E6 8032 cpi R24,32
02E8 08F4 brsh X1
02EA B7CF rjmp L45
02EC X1:
02EC .dbline 193
02EC 8C2D mov R24,R12
02EE 8051 subi R24,16
02F0 C82E mov R12,R24
02F2 .dbline 194
02F2 0E84 ldd R0,y+14
02F4 0A94 dec R0
02F6 0E86 std y+14,R0
02F8 .dbline 195
02F8 L43:
02F8 .dbline 171
02F8 0E84 ldd R0,y+14
02FA 0020 tst R0
02FC 09F0 breq X2
02FE ABCF rjmp L42
0300 X2:
0300 .dbline -2
0300 L39:
0300 00D0 rcall pop_gset5
0302 2496 adiw R28,4
0304 .dbline 0 ; func end
0304 0895 ret
0306 .dbsym r window 20 c
0306 .dbsym r j 22 c
0306 .dbsym r loca 10 c
0306 .dbsym r i 14 c
0306 .dbsym r p 12 c
0306 .dbsym l loc 16 c
0306 .dbsym l lenth 14 c
0306 .dbsym r adress1 14 c
0306 .dbsym l chin 10 pc
0306 .dbend
0306 .dbfunc e show_filename _show_filename fi
0306 ; start -> R20,R21
0306 ; adress1 -> R22
0306 ; chinese1 -> R20,R21
.even
0306 _show_filename::
0306 00D0 rcall push_gset2
0308 622F mov R22,R18
030A A801 movw R20,R16
030C .dbline -1
030C .dbline 199
030C ; p++;
030C ; j++;
030C ; }
030C ; p-=16;
030C ; lenth--;
030C ; }
030C ;
030C ; }
030C ; uint16 show_filename(uint8 *chinese1,uint8 adress1)
030C ; {
030C .dbline 201
030C ; uint16 start;
030C ; start=get_location(chinese1[0],chinese1[1]);
030C FA01 movw R30,R20
030E 2181 ldd R18,z+1
0310 FA01 movw R30,R20
0312 0081 ldd R16,z+0
0314 29DF rcall _get_location
0316 A801 movw R20,R16
0318 .dbline 202
0318 ; return start;
0318 .dbline -2
0318 L57:
0318 00D0 rcall pop_gset2
031A .dbline 0 ; func end
031A 0895 ret
031C .dbsym r start 20 i
031C .dbsym r adress1 22 c
031C .dbsym r chinese1 20 pc
031C .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\ICCFIL~1\五键MP3ICC\12232.c
0000 _zikustart::
0000 .blkb 2
0002 .dbsym e zikustart _zikustart i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -