📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile F:\car\main.c
.area data(ram, con, rel)
.dbfile F:\car\main.c
_T::
.blkb 2
.area idata
.word 1000
.area data(ram, con, rel)
.dbfile F:\car\main.c
.dbfile F:\car\linecheck.h
.dbsym e T _T i
_i::
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile F:\car\linecheck.h
.dbsym e i _i i
_k::
.blkb 2
.area idata
.word 1
.area data(ram, con, rel)
.dbfile F:\car\linecheck.h
.dbsym e k _k i
_flag::
.blkb 2
.area idata
.word 1
.area data(ram, con, rel)
.dbfile F:\car\linecheck.h
.dbsym e flag _flag i
.area text(rom, con, rel)
.dbfile F:\car\linecheck.h
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 14
; #include <iom32v.h>
; #include "linecheck.h"
; //#include "blance.h"
; //============================================================================================
; //函数: void main()
; //语法:void main()
; //描述:主函数
; //参数 无
; //返回:无
; //============================================================================================
; void main()
; {
; port_init();
; INT1_init();
.dbline 15
; init_devices();
ldi R24,255
out 0x1b,R24
.dbline 16
; while(1)
clr R2
out 0x1a,R2
.dbline 17
; {
out 0x18,R2
.dbline 18
; blance();
out 0x17,R24
.dbline 19
; //PORTC = 0xff;
out 0x15,R2
.dbline 20
; // Linecheck_GO();
out 0x14,R24
.dbline 21
; //Linecheck_BACK();
ldi R24,247
out 0x11,R24
.dbline 22
; }
ldi R24,8
out 0x12,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e INT1_init _INT1_init fV
.even
_INT1_init::
.dbline -1
.dbline 26
; }
.dbline 27
ldi R24,128
out 0x3f,R24
.dbline 29
ldi R24,12
out 0x35,R24
.dbline 30
ldi R24,128
out 0x3b,R24
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer0_init _timer0_init fV
.even
_timer0_init::
.dbline -1
.dbline 37
.dbline 38
clr R2
out 0x33,R2
.dbline 39
out 0x32,R2
.dbline 40
out 0x3c,R2
.dbline 41
ldi R24,2
out 0x33,R24
.dbline -2
L3:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer1_init _timer1_init fV
.even
_timer1_init::
.dbline -1
.dbline 48
.dbline 49
clr R2
out 0x2e,R2
.dbline 50
ldi R24,99
out 0x2d,R24
.dbline 51
ldi R24,192
out 0x2c,R24
.dbline 52
ldi R24,156
out 0x2b,R24
.dbline 53
ldi R24,64
out 0x2a,R24
.dbline 54
ldi R24,156
out 0x29,R24
.dbline 55
ldi R24,64
out 0x28,R24
.dbline 56
ldi R24,156
out 0x27,R24
.dbline 57
ldi R24,64
out 0x26,R24
.dbline 58
out 0x2f,R2
.dbline 59
ldi R24,1
out 0x2e,R24
.dbline -2
L4:
.dbline 0 ; func end
ret
.dbend
.dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
_timer1_ovf_isr::
.dbline -1
.dbline 63
.dbline 65
ldi R24,99
out 0x2d,R24
.dbline 66
ldi R24,192
out 0x2c,R24
.dbline 67
ldi R24,128
out 0x3b,R24
.dbline -2
L5:
.dbline 0 ; func end
ret
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 72
.dbline 74
xcall _timer1_init
.dbline 75
ldi R24,4
out 0x39,R24
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay _delay fV
; i -> R20,R21
; hh -> R16,R17
.even
_delay::
st -y,R20
st -y,R21
.dbline -1
.dbline 87
.dbline 89
clr R20
clr R21
xjmp L11
L8:
.dbline 90
.dbline 91
.dbline 92
L9:
.dbline 89
subi R20,255 ; offset = 1
sbci R21,255
L11:
.dbline 89
cp R20,R16
cpc R21,R17
brlo L8
X0:
.dbline -2
L7:
.dbline 0 ; func end
ld R21,y+
ld R20,y+
ret
.dbsym r i 20 I
.dbsym r hh 16 i
.dbend
.area vector(rom, abs)
.org 12
jmp _int1
.area text(rom, con, rel)
.dbfile F:\car\linecheck.h
.dbfunc e int1 _int1 fV
.even
_int1::
st -y,R0
st -y,R1
st -y,R2
st -y,R3
st -y,R4
st -y,R5
st -y,R6
st -y,R7
st -y,R8
st -y,R9
st -y,R16
st -y,R17
st -y,R18
st -y,R19
st -y,R24
st -y,R25
st -y,R26
st -y,R27
st -y,R30
st -y,R31
in R0,0x3f
st -y,R0
.dbline -1
.dbline 154
.dbline 163
lds R2,_flag
lds R3,_flag+1
tst R2
brne X1
tst R3
breq L13
X1:
.dbline 164
.dbline 165
xcall _timer0_init
.dbline 166
in R2,0x32
clr R3
sts _temp+1,R3
sts _temp,R2
.dbline 168
ldi R24,8
out 0x35,R24
.dbline 169
clr R2
sts _flag+1,R3
sts _flag,R2
.dbline 171
xjmp L14
L13:
.dbline 173
.dbline 174
clr R2
out 0x33,R2
.dbline 175
lds R2,_temp
lds R3,_temp+1
in R4,0x32
clr R5
sub R4,R2
sbc R5,R3
sts _temp+1,R5
sts _temp,R4
.dbline 176
ldi R24,12
out 0x35,R24
.dbline 177
ldi R24,1
ldi R25,0
sts _flag+1,R25
sts _flag,R24
.dbline 181
clr R2
out 0x3b,R2
.dbline 182
L14:
.dbline -2
L12:
.dbline 0 ; func end
ld R0,y+
out 0x3f,R0
ld R31,y+
ld R30,y+
ld R27,y+
ld R26,y+
ld R25,y+
ld R24,y+
ld R19,y+
ld R18,y+
ld R17,y+
ld R16,y+
ld R9,y+
ld R8,y+
ld R7,y+
ld R6,y+
ld R5,y+
ld R4,y+
ld R3,y+
ld R2,y+
ld R1,y+
ld R0,y+
reti
.dbend
.dbfunc e STOP _STOP fV
.even
_STOP::
.dbline -1
.dbline 190
.dbline 191
clr R2
out 0x18,R2
.dbline 192
ldi R16,10000
ldi R17,39
xcall _delay
.dbline -2
L15:
.dbline 0 ; func end
ret
.dbend
.dbfunc e GO _GO fV
; aa -> R10,R11
.even
_GO::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 197
.dbline 199
ldi R24,54
out 0x18,R24
.dbline 200
movw R16,R10
xcall _delay
.dbline -2
L16:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r aa 10 i
.dbend
.dbfunc e BACK _BACK fV
; bb -> R10,R11
.even
_BACK::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 207
.dbline 209
ldi R24,57
out 0x18,R24
.dbline 210
movw R16,R10
xcall _delay
.dbline 211
clr R2
out 0x18,R2
.dbline 212
lds R16,_T
lds R17,_T+1
sub R16,R10
sbc R17,R11
xcall _delay
.dbline -2
L17:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r bb 10 i
.dbend
.dbfunc e GTOL _GTOL fV
; cc -> R10,R11
.even
_GTOL::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 216
.dbline 217
ldi R24,50
out 0x18,R24
.dbline 218
movw R16,R10
xcall _delay
.dbline 219
clr R2
out 0x18,R2
.dbline 220
lds R16,_T
lds R17,_T+1
sub R16,R10
sbc R17,R11
xcall _delay
.dbline -2
L18:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r cc 10 i
.dbend
.dbfunc e GTOR _GTOR fV
; dd -> R10,R11
.even
_GTOR::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 224
.dbline 226
ldi R24,52
out 0x18,R24
.dbline 227
movw R16,R10
xcall _delay
.dbline 228
clr R2
out 0x18,R2
.dbline 229
lds R16,_T
lds R17,_T+1
sub R16,R10
sbc R17,R11
xcall _delay
.dbline -2
L19:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r dd 10 i
.dbend
.dbfunc e BTOR _BTOR fV
; cc -> R10,R11
.even
_BTOR::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 232
.dbline 234
ldi R24,48
out 0x18,R24
.dbline 235
movw R16,R10
xcall _delay
.dbline 236
clr R2
out 0x18,R2
.dbline 237
lds R16,_T
lds R17,_T+1
sub R16,R10
sbc R17,R11
xcall _delay
.dbline -2
L20:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r cc 10 i
.dbend
.dbfunc e BTOL _BTOL fV
; dd -> R10,R11
.even
_BTOL::
st -y,R10
st -y,R11
movw R10,R16
.dbline -1
.dbline 241
.dbline 244
ldi R24,56
out 0x18,R24
.dbline 245
movw R16,R10
xcall _delay
.dbline 246
clr R2
out 0x18,R2
.dbline 247
lds R16,_T
lds R17,_T+1
sub R16,R10
sbc R17,R11
xcall _delay
.dbline -2
L21:
.dbline 0 ; func end
ld R11,y+
ld R10,y+
ret
.dbsym r dd 10 i
.dbend
.dbfunc e Linecheck_GO _Linecheck_GO fV
; ss -> R10
.even
_Linecheck_GO::
xcall push_xgset300C
.dbline -1
.dbline 258
.dbline 261
ldi R24,255
out 0x1b,R24
.dbline 262
clr R2
out 0x1a,R2
.dbline 263
ldi R16,1
ldi R17,0
xcall _delay
.dbline 265
in R10,0x19
.dbline 266
mov R20,R10
clr R21
cpi R20,239
ldi R30,0
cpc R21,R30
breq L26
X2:
cpi R20,239
ldi R30,0
cpc R21,R30
brge X8
xjmp L23
X8:
X3:
L31:
cpi R20,247
ldi R30,0
cpc R21,R30
breq L27
X4:
cpi R20,251
ldi R30,0
cpc R21,R30
breq L28
X5:
cpi R20,253
ldi R30,0
cpc R21,R30
breq L29
X6:
cpi R20,254
ldi R30,0
cpc R21,R30
breq L30
X7:
xjmp L23
L26:
.dbline 268
ldi R16,600
ldi R17,2
xcall _GTOL
.dbline 268
clr R2
clr R3
sts _i+1,R3
sts _i,R2
.dbline 268
xjmp L24
L27:
.dbline 269
ldi R16,600
ldi R17,2
xcall _GTOL
.dbline 269
clr R2
clr R3
sts _i+1,R3
sts _i,R2
.dbline 269
xjmp L24
L28:
.dbline 270
ldi R16,700
ldi R17,2
xcall _GO
.dbline 270
clr R2
clr R3
sts _i+1,R3
sts _i,R2
.dbline 270
xjmp L24
L29:
.dbline 271
ldi R16,600
ldi R17,2
xcall _GTOR
.dbline 271
clr R2
clr R3
sts _i+1,R3
sts _i,R2
.dbline 271
xjmp L24
L30:
.dbline 272
ldi R16,600
ldi R17,2
xcall _GTOR
.dbline 272
clr R2
clr R3
sts _i+1,R3
sts _i,R2
.dbline 272
xjmp L24
L23:
.dbline 273
lds R24,_i
lds R25,_i+1
adiw R24,1
sts _i+1,R25
sts _i,R24
.dbline 274
L24:
.dbline 276
xjmp L32
L32:
.dbline 281
ldi R16,1000
ldi R17,3
xcall _GO
L33:
.dbline -2
L22:
.dbline 0 ; func end
xjmp pop_xgset300C
.dbsym r ss 10 c
.dbend
.dbfunc e Linecheck_BACK _Linecheck_BACK fV
; ss -> R10
.even
_Linecheck_BACK::
xcall push_xgset300C
.dbline -1
.dbline 291
.dbline 293
ldi R24,255
out 0x1b,R24
.dbline 294
clr R2
out 0x1a,R2
.dbline 295
ldi R16,1
ldi R17,0
xcall _delay
.dbline 297
in R10,0x19
.dbline 298
mov R20,R10
clr R21
cpi R20,225
ldi R30,0
cpc R21,R30
breq L42
X9:
cpi R20,226
ldi R30,0
cpc R21,R30
breq L41
X10:
cpi R20,228
ldi R30,0
cpc R21,R30
breq L40
X11:
cpi R20,232
ldi R30,0
cpc R21,R30
breq L39
X12:
cpi R20,225
ldi R30,0
cpc R21,R30
brlt L35
X13:
L43:
cpi R20,240
ldi R30,0
cpc R21,R30
breq L38
X14:
xjmp L35
L38:
.dbline 300
ldi R16,600
ldi R17,2
xcall _BTOR
.dbline 300
xjmp L36
L39:
.dbline 301
ldi R16,600
ldi R17,2
xcall _BTOR
.dbline 301
xjmp L36
L40:
.dbline 302
ldi R16,700
ldi R17,2
xcall _BACK
.dbline 302
xjmp L36
L41:
.dbline 303
ldi R16,600
ldi R17,2
xcall _BTOL
.dbline 303
xjmp L36
L42:
.dbline 304
ldi R16,600
ldi R17,2
xcall _BTOL
.dbline 304
xjmp L36
L35:
.dbline 305
ldi R16,700
ldi R17,2
xcall _BACK
.dbline 306
L36:
.dbline -2
L34:
.dbline 0 ; func end
xjmp pop_xgset300C
.dbsym r ss 10 c
.dbend
.dbfunc e blance _blance fV
.even
_blance::
.dbline -1
.dbline 309
.dbline 310
lds R24,_temp
lds R25,_temp+1
cpi R24,159
ldi R30,0
cpc R25,R30
brsh L45
X15:
.dbline 311
ldi R16,1000
ldi R17,3
xcall _GO
L45:
.dbline 313
lds R2,_temp
lds R3,_temp+1
out 0x15,R2
.dbline 314
ldi R24,160
ldi R25,0
cp R24,R2
cpc R25,R3
brsh L47
X16:
.dbline 315
ldi R16,700
ldi R17,2
xcall _BACK
L47:
.dbline 316
lds R2,_temp
lds R3,_temp+1
out 0x15,R2
.dbline -2
L44:
.dbline 0 ; func end
ret
.dbend
.dbfile F:\car\main.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 12
.dbline 13
xcall _port_init
.dbline 14
xcall _INT1_init
.dbline 15
xcall _init_devices
xjmp L51
L50:
.dbline 17
.dbline 18
xcall _blance
.dbline 22
L51:
.dbline 16
xjmp L50
X17:
.dbline -2
L49:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile F:\car\main.c
_temp::
.blkb 2
.dbfile F:\car\linecheck.h
.dbsym e temp _temp i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -