📄 mian.s
字号:
movw R24,R0
subi R24,224
sbci R25,1
lds R30,_a1+1
clr R31
sbiw R30,48
add R24,R30
adc R25,R31
sts _data1+1,R25
sts _data1,R24
.dbline 108
xjmp L129
L128:
.dbline 109
lds R24,_a1
cpi R24,32
breq L132
.dbline 109
.dbline 109
clr R25
sbiw R24,48
sts _data1+1,R25
sts _data1,R24
.dbline 109
xjmp L133
L132:
.dbline 110
clr R2
clr R3
sts _data1+1,R3
sts _data1,R2
L133:
L129:
L124:
L118:
.dbline 112
lds R24,_a2+3
cpi R24,32
breq L134
.dbline 112
.dbline 112
lds R2,_a2+1
ldi R24,100
mul R24,R2
movw R24,R0
subi R24,192
sbci R25,18
lds R18,_a2
clr R19
ldi R16,1000
ldi R17,3
xcall empy16s
movw R30,R16
subi R30,128
sbci R31,187
add R30,R24
adc R31,R25
lds R2,_a2+2
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
add R30,R24
adc R31,R25
lds R24,_a2+3
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
sts _data2+1,R31
sts _data2,R30
.dbline 112
xjmp L135
L134:
.dbline 113
lds R24,_a2+2
cpi R24,32
breq L140
.dbline 113
.dbline 113
lds R2,_a2+1
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
lds R2,_a2
ldi R30,100
mul R30,R2
movw R30,R0
subi R30,192
sbci R31,18
add R30,R24
adc R31,R25
lds R24,_a2+2
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
sts _data2+1,R31
sts _data2,R30
.dbline 113
xjmp L141
L140:
.dbline 114
lds R24,_a2+1
cpi R24,32
breq L145
.dbline 114
.dbline 114
lds R2,_a2
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
lds R30,_a2+1
clr R31
sbiw R30,48
add R24,R30
adc R25,R31
sts _data2+1,R25
sts _data2,R24
.dbline 114
xjmp L146
L145:
.dbline 115
lds R24,_a2
cpi R24,32
breq L149
.dbline 115
.dbline 115
clr R25
sbiw R24,48
sts _data2+1,R25
sts _data2,R24
.dbline 115
xjmp L150
L149:
.dbline 116
clr R2
clr R3
sts _data2+1,R3
sts _data2,R2
L150:
L146:
L141:
L135:
.dbline 118
xcall _process_count
.dbline -2
L116:
.dbline 0 ; func end
ret
.dbend
.dbfunc e process_count _process_count fV
.even
_process_count::
.dbline -1
.dbline 122
.dbline 122
lds R24,_flag_count
cpi R24,43
brne L152
.dbline 122
lds R2,_data2
lds R3,_data2+1
lds R4,_data1
lds R5,_data1+1
add R4,R2
adc R5,R3
movw R2,R4
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _result+1,R3
sts _result,R2
sts _result+2+1,R5
sts _result+2,R4
L152:
.dbline 123
lds R24,_flag_count
cpi R24,45
brne L154
.dbline 123
lds R2,_data2
lds R3,_data2+1
lds R4,_data1
lds R5,_data1+1
sub R4,R2
sbc R5,R3
movw R2,R4
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _result+1,R3
sts _result,R2
sts _result+2+1,R5
sts _result+2,R4
L154:
.dbline 124
lds R24,_flag_count
cpi R24,42
brne L156
.dbline 124
lds R18,_data2
lds R19,_data2+1
lds R16,_data1
lds R17,_data1+1
xcall empy16s
movw R2,R16
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _result+1,R3
sts _result,R2
sts _result+2+1,R5
sts _result+2,R4
L156:
.dbline 125
lds R24,_flag_count
cpi R24,47
brne L158
.dbline 125
lds R18,_data2
lds R19,_data2+1
lds R16,_data1
lds R17,_data1+1
xcall div16s
movw R2,R16
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _result+1,R3
sts _result,R2
sts _result+2+1,R5
sts _result+2,R4
L158:
.dbline 126
xcall _display_result
.dbline -2
L151:
.dbline 0 ; func end
ret
.dbend
.dbfunc e display_result _display_result fV
.even
_display_result::
xcall push_gset2
sbiw R28,2
.dbline -1
.dbline 130
.dbline 130
ldi R20,15
ldi R21,39
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
cp R20,R2
cpc R21,R3
cpc R22,R4
cpc R23,R5
brge L161
.dbline 130
ldi R24,1
sts _error,R24
L161:
.dbline 131
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brge L163
lds R24,_flag_count
cpi R24,45
brne L163
.dbline 131
.dbline 131
ldi R24,45
sts _result_dp,R24
.dbline 131
ldi R20,255
ldi R21,255
ldi R22,255
ldi R23,255
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32s
sts _result+1,R17
sts _result,R16
sts _result+2+1,R19
sts _result+2,R18
.dbline 131
L163:
.dbline 132
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brge L165
lds R24,_flag_count
cpi R24,45
breq L165
.dbline 132
ldi R24,1
sts _error,R24
L165:
.dbline 133
lds R24,_flag_count
cpi R24,47
brne L167
lds R2,_data2
lds R3,_data2+1
tst R2
brne L167
tst R3
brne L167
X22:
.dbline 133
ldi R24,1
sts _error,R24
L167:
.dbline 136
ldi R20,16
ldi R21,39
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _result_dp+1,R2
.dbline 137
ldi R20,232
ldi R21,3
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R23
st -y,R22
st -y,R21
st -y,R20
xcall mod32s
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _result_dp+2,R2
.dbline 138
ldi R20,100
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R23
st -y,R22
st -y,R21
st -y,R20
xcall mod32s
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _result_dp+3,R2
.dbline 139
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R23
st -y,R22
st -y,R21
st -y,R20
xcall mod32s
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _result_dp+4,R2
.dbline 140
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
lds R4,_result+2
lds R5,_result+2+1
lds R2,_result
lds R3,_result+1
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall mod32s
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
sts _result_dp+5,R2
.dbline 141
lds R24,_result_dp+1
cpi R24,48
brne L174
.dbline 142
.dbline 142
ldi R24,32
sts _result_dp+1,R24
.dbline 143
lds R24,_result_dp+2
cpi R24,48
brne L178
.dbline 144
.dbline 144
ldi R24,32
sts _result_dp+2,R24
.dbline 145
lds R24,_result_dp+3
cpi R24,48
brne L182
.dbline 146
; {result_dp[3]=32;
.dbline 146
ldi R24,32
sts _result_dp+3,R24
.dbline 147
; if(result_dp[4]==48)
lds R24,_result_dp+4
cpi R24,48
brne L186
.dbline 148
; {result_dp[4]=32;
.dbline 148
ldi R24,32
sts _result_dp+4,R24
.dbline 150
;
; }
L186:
.dbline 151
; }
L182:
.dbline 152
; }
L178:
.dbline 153
; }
L174:
.dbline 155
;
; if(error==1)//错误显示
lds R24,_error
cpi R24,1
brne L190
.dbline 156
; LCD_write_string(10,1,"ERROR");
ldi R24,<L89
ldi R25,>L89
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,10
xcall _LCD_write_string
xjmp L191
L190:
.dbline 159
ldi R24,<_result_dp
ldi R25,>_result_dp
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,10
xcall _LCD_write_string
L191:
.dbline -2
L160:
adiw R28,2
xcall pop_gset2
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; i -> <dead>
.even
_main::
sbiw R28,2
.dbline -1
.dbline 164
;
;
; else LCD_write_string(10,1,result_dp);
;
; }
;
; void main(void)
; { unsigned char i;
.dbline 165
; LCD_init();//液晶初始化
xcall _LCD_init
.dbline 166
; LCD_write_string(1,0,"COUNTER BY MJP");//显示欢迎信息
ldi R24,<L193
ldi R25,>L193
std y+1,R25
std y+0,R24
clr R18
ldi R16,1
xcall _LCD_write_string
xjmp L195
L194:
.dbline 168
; while(1)
; {key=get_key();//按键扫描
.dbline 168
xcall _get_key
sts _key,R16
.dbline 170
;
; if(key!=0x00)
tst R16
breq L197
.dbline 171
; {
.dbline 172
; process_key();//调用按键处理函数
xcall _process_key
.dbline 173
; }
L197:
.dbline 175
L195:
.dbline 167
xjmp L194
X23:
.dbline -2
L192:
adiw R28,2
.dbline 0 ; func end
ret
.dbsym l i 3 c
.dbend
.area bss(ram, con, rel)
.dbfile D:\avr\+++精华+++\计算器\mian.c
_result::
.blkb 4
.dbsym e result _result L
_data2::
.blkb 2
.dbsym e data2 _data2 I
_data1::
.blkb 2
.dbsym e data1 _data1 I
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\计算器\mian.c
L193:
.blkb 15
.area idata
.byte 'C,'O,'U,'N,'T,'E,'R,32,'B,'Y,32,'M,'J,'P,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\计算器\mian.c
L103:
.blkb 17
.area idata
.byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
.byte 0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\计算器\mian.c
L89:
.blkb 6
.area idata
.byte 'E,'R,'R,'O,'R,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\计算器\mian.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -