📄 12232.s
字号:
; page -> R20
; i -> R22
.even
_clrscr::
rcall push_gset2
.dbline -1
.dbline 128
; }
;
; void clrscr(void)
; {
.dbline 131
; uint8 i;
; uint8 page;
; for (page=0;page<4;page++)
clr R20
rjmp L32
L29:
.dbline 132
; {
.dbline 133
; SetPage(page,page);
mov R18,R20
mov R16,R20
rcall _SetPage
.dbline 134
; for (i=0;i<61;i++)
clr R22
rjmp L36
L33:
.dbline 135
.dbline 136
mov R18,R22
mov R16,R22
rcall _SetAddress
.dbline 137
clr R16
rcall _PutCharL
.dbline 138
clr R16
rcall _PutCharR
.dbline 139
L34:
.dbline 134
inc R22
L36:
.dbline 134
cpi R22,61
brlo L33
.dbline 140
L30:
.dbline 131
inc R20
L32:
.dbline 131
cpi R20,4
brlo L29
.dbline -2
L28:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r page 20 c
.dbsym r i 22 c
.dbend
.dbfunc e lcd_init _lcd_init fV
.even
_lcd_init::
.dbline -1
.dbline 143
; {
; SetAddress(i,i);
; PutCharL(0x00);
; PutCharR(0x00);
; }
; }
; }
; void lcd_init(void)
; {
.dbline 144
; lcdini(); //reset
rcall _lcdini
.dbline 145
; clrscr(); //clr
rcall _clrscr
.dbline 146
; clrscr();
rcall _clrscr
.dbline -2
L37:
.dbline 0 ; func end
ret
.dbend
.dbfunc e get_location _get_location fi
; i -> <dead>
; temp2 -> R10,R11
; start -> y+4
; temp1 -> R12,R13
; location -> y+0
; data2 -> R10
; data1 -> R12
.even
_get_location::
rcall push_gset4
mov R10,R18
mov R12,R16
sbiw R28,8
.dbline -1
.dbline 149
; }
; uint16 get_location(uint8 data1,uint8 data2)
; {
.dbline 154
; uint8 i;
; uint16 temp1,temp2;
; uint32 location;
; uint32 start;
; data1-=0xa1,data2-=0xa1;
mov R24,R12
subi R24,161
mov R12,R24
mov R24,R10
subi R24,161
mov R10,R24
.dbline 155
; temp1=data1*94;
ldi R24,94
mul R24,R12
movw R12,R0
.dbline 156
; location=temp1+data2;
mov R2,R10
clr R3
movw R4,R12
add R4,R2
adc R5,R3
movw R2,R4
clr R4
clr R5
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 157
; location=location<<5;
ldi R24,5
ldi R25,0
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
st -y,R24
movw R16,R2
movw R18,R4
rcall lsl32
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 158
; temp1=location>>9;
ldi R24,9
ldi R25,0
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
st -y,R24
movw R16,R2
movw R18,R4
rcall lsr32
movw R12,R16
.dbline 159
; temp2=location%512;
ldi R20,255
ldi R21,1
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
and R2,R20
and R3,R21
and R4,R22
and R5,R23
movw R10,R2
.dbline 160
; start=ClusConvLBA(zikustart);
lds R16,_zikustart
lds R17,_zikustart+1
rcall _ClusConvLBA
movw R30,R28
std z+4,R16
std z+5,R17
std z+6,R18
std z+7,R19
.dbline 161
; start=start+temp1;
movw R2,R12
clr R4
clr R5
movw R30,R28
ldd R6,z+4
ldd R7,z+5
ldd R8,z+6
ldd R9,z+7
add R6,R2
adc R7,R3
adc R8,R4
adc R9,R5
movw R30,R28
std z+4,R6
std z+5,R7
std z+6,R8
std z+7,R9
.dbline 162
; ReadBlock(start);
movw R30,R28
ldd R16,z+4
ldd R17,z+5
ldd R18,z+6
ldd R19,z+7
rcall _ReadBlock
.dbline 163
; return temp2;
movw R16,R10
.dbline -2
L38:
adiw R28,8
rcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l i 1 c
.dbsym r temp2 10 i
.dbsym l start 4 l
.dbsym r temp1 12 i
.dbsym l location 0 l
.dbsym r data2 10 c
.dbsym r data1 12 c
.dbend
.dbfunc e show_chin _show_chin fV
; window -> R20
; j -> R22
; loca -> R10
; i -> R14
; p -> R12
; loc -> y+16
; lenth -> y+14
; adress1 -> R14
; chin -> y+10
.even
_show_chin::
rcall push_arg4
rcall push_gset5
mov R14,R18
.dbline -1
.dbline 166
; }
; void show_chin(uint8 *chin,uint8 adress1,uint8 lenth,uint8 loc)
; {
.dbline 167
; uint8 i,j=0,p,window=0,loca;
clr R22
.dbline 167
clr R20
.dbline 168
; loca=0;
clr R10
.dbline 169
; p=adress1;
mov R12,R14
.dbline 170
; if(loc) loca=2;
ldd R0,y+16
tst R0
brne X0
rjmp L43
X0:
.dbline 170
ldi R24,2
mov R10,R24
rjmp L43
L42:
.dbline 172
; while(lenth)
; {
.dbline 173
; for(i=0;i<32;i++)
clr R14
rjmp L48
L45:
.dbline 174
; {
.dbline 175
; if(p>76) window=1,p=p%61;
ldi R24,76
cp R24,R12
brsh L49
.dbline 175
ldi R20,1
ldi R17,61
mov R16,R12
rcall mod8u
mov R12,R16
L49:
.dbline 176
; if(i<16)
mov R24,R14
cpi R24,16
brsh L51
.dbline 177
; {
.dbline 178
; SetPage(loca,loca);
mov R18,R10
mov R16,R10
rcall _SetPage
.dbline 179
; SetAddress(p,p);
mov R18,R12
mov R16,R12
rcall _SetAddress
.dbline 180
; if(window) PutCharR(chin[j]);
tst R20
breq L53
.dbline 180
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R16,z+0
rcall _PutCharR
rjmp L52
L53:
.dbline 181
; else PutCharL(chin[j]);
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R16,z+0
rcall _PutCharL
.dbline 182
; }
rjmp L52
L51:
.dbline 184
; else
; {
.dbline 185
; SetPage(loca+1,loca+1);
mov R24,R10
subi R24,255 ; addi 1
mov R18,R24
mov R16,R24
rcall _SetPage
.dbline 186
; SetAddress(p-16,p-16);
mov R24,R12
subi R24,16
mov R18,R24
mov R16,R24
rcall _SetAddress
.dbline 187
; if(window) PutCharR(chin[j]);
tst R20
breq L55
.dbline 187
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R16,z+0
rcall _PutCharR
rjmp L56
L55:
.dbline 188
; else PutCharL(chin[j]);
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R16,z+0
rcall _PutCharL
L56:
.dbline 189
; }
L52:
.dbline 190
inc R12
.dbline 191
inc R22
.dbline 192
L46:
.dbline 173
inc R14
L48:
.dbline 173
mov R24,R14
cpi R24,32
brsh X1
rjmp L45
X1:
.dbline 193
mov R24,R12
subi R24,16
mov R12,R24
.dbline 194
ldd R0,y+14
dec R0
std y+14,R0
.dbline 195
L43:
.dbline 171
ldd R0,y+14
tst R0
breq X2
rjmp L42
X2:
.dbline -2
L39:
rcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r window 20 c
.dbsym r j 22 c
.dbsym r loca 10 c
.dbsym r i 14 c
.dbsym r p 12 c
.dbsym l loc 16 c
.dbsym l lenth 14 c
.dbsym r adress1 14 c
.dbsym l chin 10 pc
.dbend
.dbfunc e show_filename _show_filename fi
; start -> R20,R21
; adress1 -> R22
; chinese1 -> R20,R21
.even
_show_filename::
rcall push_gset2
mov R22,R18
movw R20,R16
.dbline -1
.dbline 199
; p++;
; j++;
; }
; p-=16;
; lenth--;
; }
;
; }
; uint16 show_filename(uint8 *chinese1,uint8 adress1)
; {
.dbline 201
; uint16 start;
; start=get_location(chinese1[0],chinese1[1]);
movw R30,R20
ldd R18,z+1
movw R30,R20
ldd R16,z+0
rcall _get_location
movw R20,R16
.dbline 202
; return start;
.dbline -2
L57:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r start 20 i
.dbsym r adress1 22 c
.dbsym r chinese1 20 pc
.dbend
.area bss(ram, con, rel)
.dbfile D:\ICCFIL~1\五键MP3ICC\12232.c
_zikustart::
.blkb 2
.dbsym e zikustart _zikustart i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -