📄 main.s
字号:
; all=0;return;}
clr R2
sts _all,R2
.dbline 136
xjmp L4
L21:
.dbline 137
; else if (a=='-')
lds R24,_a
cpi R24,45
breq X8
xjmp L23
X8:
.dbline 138
; {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
.dbline 138
lds R18,_c
clr R19
ldi R16,1000
ldi R17,3
xcall empy16s
movw R24,R16
subi R24,128
sbci R25,187
lds R18,_b
clr R19
ldi R16,10000
ldi R17,39
xcall empy16s
movw R30,R16
subi R30,0
sbci R31,83
add R30,R24
adc R31,R25
lds R2,_d
ldi R24,100
mul R24,R2
movw R24,R0
subi R24,192
sbci R25,18
add R30,R24
adc R31,R25
lds R2,_e
ldi R24,10
mul R24,R2
movw R24,R0
subi R24,224
sbci R25,1
add R30,R24
adc R31,R25
lds R24,_f
clr R25
sbiw R24,48
add R30,R24
adc R31,R25
com R30
com R31
subi R30,0xFF
sbci R31,0xFF
movw R2,R30
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
sts _juli+1,R3
sts _juli,R2
sts _juli+2+1,R5
sts _juli+2,R4
.dbline 139
; all=0;return;}
clr R2
sts _all,R2
.dbline 139
xjmp L4
L23:
.dbline 140
; if (a!=0) {all=0;return;}
lds R2,_a
tst R2
brne X9
xjmp L17
X9:
.dbline 140
.dbline 140
clr R2
sts _all,R2
.dbline 140
xjmp L4
X1:
.dbline 142
; //PORTF=a;
; }
L16:
.dbline 143
; else if (all==0)//(johu!=3)&&(johu!=5) //5:7-bit 3:8-bit
lds R2,_all
tst R2
breq X10
xjmp L27
X10:
.dbline 144
; {
.dbline 145
; a=b;
lds R2,_b
sts _a,R2
.dbline 146
; b=c;
lds R2,_c
sts _b,R2
.dbline 147
; c=d;
lds R2,_d
sts _c,R2
.dbline 148
; d=UDR1;
lds R2,156
sts _d,R2
.dbline 149
; if ((a=='c')&&(b=='i')&&(c=='r'))
lds R24,_a
cpi R24,99
brne L29
lds R24,_b
cpi R24,105
brne L29
lds R24,_c
cpi R24,114
brne L29
.dbline 150
; {
.dbline 151
; all=CIR;
ldi R24,1
sts _all,R24
.dbline 152
; a=0;b=0;c=0;d=0;e=0;f=0;
clr R2
sts _a,R2
.dbline 152
sts _b,R2
.dbline 152
sts _c,R2
.dbline 152
sts _d,R2
.dbline 152
sts _e,R2
.dbline 152
sts _f,R2
.dbline 153
; return; }//RXlen=4;{johu=3;RXlen=3;return;}
xjmp L4
L29:
.dbline 154
; else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
lds R24,_a
cpi R24,108
brne L31
lds R24,_b
cpi R24,105
brne L31
lds R24,_c
cpi R24,110
brne L31
lds R24,_d
cpi R24,101
brne L31
.dbline 155
; {
.dbline 156
; all=LINE;
ldi R24,2
sts _all,R24
.dbline 157
; a=0;b=0;c=0;d=0;e=0;f=0;
clr R2
sts _a,R2
.dbline 157
sts _b,R2
.dbline 157
sts _c,R2
.dbline 157
sts _d,R2
.dbline 157
sts _e,R2
.dbline 157
sts _f,R2
.dbline 158
; return; }//RXlen=4;{johu=5;RXlen=3;return;}
xjmp L4
L31:
.dbline 159
; else if ((b=='c')&&(c=='l')&&(d=='s'))
lds R24,_b
cpi R24,99
brne L33
lds R24,_c
cpi R24,108
brne L33
lds R24,_d
cpi R24,115
brne L33
.dbline 160
; {
.dbline 161
; xx=0;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _xx+1,R21
sts _xx,R20
sts _xx+2+1,R23
sts _xx+2,R22
.dbline 162
; jiaodu=0;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _jiaodu+1,R21
sts _jiaodu,R20
sts _jiaodu+2+1,R23
sts _jiaodu+2,R22
.dbline 163
; juli=0;
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
sts _juli+1,R21
sts _juli,R20
sts _juli+2+1,R23
sts _juli+2,R22
.dbline 164
; }
L33:
.dbline 166
; ////////////////////////////////////////////////////////////////////
; }
L27:
L17:
L6:
.dbline -2
L4:
xcall pop_gset2
ld R0,y+
out 0x3f,R0
ld R31,y+
ld R30,y+
ld R25,y+
ld R24,y+
ld R19,y+
ld R18,y+
ld R17,y+
ld R16,y+
ld R5,y+
ld R4,y+
ld R3,y+
ld R2,y+
ld R1,y+
ld R0,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e number_uart1 _number_uart1 fV
; n -> y+0
; huanhang -> R10
; NUM -> y+10
.even
_number_uart1::
xcall push_arg4
xcall push_gset3
sbiw R28,4
ldd R10,y+14
.dbline -1
.dbline 186
; }
;
;
;
; /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
; {
; char code[]={'0','1','2','3','4','5','6','7','8','9',};
; if (NUM<0)
; {LCD_write_String1(X,Y,"-");NUM=-NUM;}
; else
; {LCD_write_String1(X,Y,"+");}
; X=X+6;
; while(LEN--)
; {
; LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
; NUM=NUM/10;
; }
; }*/
; void number_uart1(long NUM,char huanhang)
; {long n=0;
.dbline 186
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
std z+0,R20
std z+1,R21
std z+2,R22
std z+3,R23
.dbline 187
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+10
ldd R3,z+11
ldd R4,z+12
ldd R5,z+13
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
brge L36
.dbline 187
.dbline 187
movw R30,R28
ldd R16,z+10
ldd R17,z+11
ldd R18,z+12
ldd R19,z+13
xcall neg32
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
L38:
.dbline 187
L39:
.dbline 187
; if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
lds R2,155
sbrs R2,5
rjmp L38
.dbline 187
ldi R24,45
sts 156,R24
.dbline 187
xjmp L45
L36:
.dbline 188
.dbline 188
movw R30,R28
ldd R2,z+10
ldd R3,z+11
ldd R4,z+12
ldd R5,z+13
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
L41:
.dbline 188
L42:
.dbline 188
; else {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}
lds R2,155
sbrs R2,5
rjmp L41
.dbline 188
ldi R24,43
sts 156,R24
.dbline 188
L44:
.dbline 189
L45:
.dbline 189
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L44
.dbline 190
; UDR1=(n/10000)%10+48;
ldi R20,16
ldi R21,39
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
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 156,R2
L47:
.dbline 191
L48:
.dbline 191
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L47
.dbline 192
; UDR1=(n/1000)%10+48;
ldi R20,232
ldi R21,3
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
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 156,R2
L50:
.dbline 193
L51:
.dbline 193
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L50
.dbline 194
; UDR1=(n/100)%10+48;
ldi R20,100
ldi R21,0
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
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 156,R2
L53:
.dbline 195
L54:
.dbline 195
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L53
.dbline 196
; UDR1=(n/10)%10+48;
ldi R20,10
ldi R21,0
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
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 156,R2
L56:
.dbline 197
L57:
.dbline 197
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L56
.dbline 198
; UDR1=n%10+48;
ldi R20,10
ldi R21,0
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
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 156,R2
.dbline 199
; if (huanhang)
tst R10
breq L68
.dbline 200
; {
L61:
.dbline 201
L62:
.dbline 201
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L61
.dbline 202
; UDR1=0x0d;
ldi R24,13
sts 156,R24
L64:
.dbline 203
L65:
.dbline 203
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L64
.dbline 204
; UDR1=0x0a;
ldi R24,10
sts 156,R24
.dbline 205
; }
xjmp L60
X11:
.dbline 207
; else
; {
L67:
.dbline 208
L68:
.dbline 208
; while(!(UCSR1A&(1<<UDRE1)));
lds R2,155
sbrs R2,5
rjmp L67
.dbline 209
; UDR1=0x20;
ldi R24,32
sts 156,R24
L70:
.dbline 210
L71:
.dbline 210
lds R2,155
sbrs R2,5
rjmp L70
.dbline 211
ldi R24,32
sts 156,R24
.dbline 212
L60:
.dbline -2
L35:
adiw R28,4
xcall pop_gset3
adiw R28,4
.dbline 0 ; func end
ret
.dbsym l n 0 L
.dbsym r huanhang 10 c
.dbsym l NUM 10 L
.dbend
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
_shuliang::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
.dbsym e shuliang _shuliang c
_xuanze::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
.dbsym e xuanze _xuanze c
.area vector(rom, abs)
.org 4
jmp _int0_isr
.area data(ram, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
.area text(rom, con, rel)
.dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
.dbfunc e int0_isr _int0_isr fV
.even
_int0_isr::
st -y,R2
st -y,R3
st -y,R24
in R2,0x3f
st -y,R2
.dbline -1
.dbline 219
; while(!(UCSR1A&(1<<UDRE1)));
; UDR1=0x20;
; }
; }
;
; unsigned char shuliang=0;
; unsigned char xuanze=0;
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void)
; {
.dbline 222
; //external interupt on INT0
;
; x_adc=0;y_adc=0;
clr R2
sts _x_adc,R2
.dbline 222
sts _y_adc,R2
.dbline 223
; chang=1;
ldi R24,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -