📄 main.s
字号:
.dbline 8
ldi R24,1
sts 155,R24
.dbline 9
ldi R24,156
sts 154,R24
.dbline 10
ldi R24,54
sts 157,R24
.dbline 11
ldi R24,51
sts 153,R24
.dbline 12
clr R2
sts 152,R2
.dbline 14
cbi 0x3,7
.dbline 15
sbi 0x2,7
.dbline -2
L29:
.dbline 0 ; func end
ret
.dbend
.dbfunc e usart_out _usart_out fV
; i -> R20
; n -> R22
; datas -> R10,R11
.even
_usart_out::
xcall push_gset3
mov R22,R18
movw R10,R16
.dbline -1
.dbline 21
.dbline 22
clr R20
.dbline 23
sbi 0x3,7
xjmp L32
L31:
.dbline 25
.dbline 26
tst R20
brne L34
.dbline 26
lds R24,154
ori R24,1
sts 154,R24
xjmp L35
L34:
.dbline 27
lds R24,154
andi R24,254
sts 154,R24
L35:
.dbline 28
mov R30,R20
clr R31
add R30,R10
adc R31,R11
ldd R2,z+0
sts 156,R2
L36:
.dbline 29
L37:
.dbline 29
lds R2,155
sbrs R2,6
rjmp L36
.dbline 30
lds R24,155
ori R24,64
sts 155,R24
.dbline 31
inc R20
.dbline 32
ldi R16,100
ldi R17,0
xcall _delay_nus
.dbline 33
L32:
.dbline 24
cp R20,R22
brlo L31
.dbline 34
cbi 0x3,7
.dbline -2
L30:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r n 22 c
.dbsym r datas 10 pc
.dbend
.dbfile D:\mojinpan\485\485_slave2/crc8.h
.dbfunc e crc8 _crc8 fc
; crc -> R20
; i -> R22
; len -> R18
; ptr -> R16,R17
.even
_crc8::
xcall push_gset2
.dbline -1
.dbline 5
.dbline 7
clr R20
xjmp L41
L40:
.dbline 9
.dbline 10
ldi R22,1
xjmp L46
L43:
.dbline 11
.dbline 12
sbrs R20,0
rjmp L47
.dbline 12
.dbline 12
lsr R20
.dbline 12
ldi R24,140
ldi R25,0
mov R2,R20
clr R3
eor R2,R24
eor R3,R25
mov R20,R2
.dbline 12
xjmp L48
L47:
.dbline 13
lsr R20
L48:
.dbline 14
movw R30,R16
ldd R2,z+0
and R2,R22
breq L49
.dbline 14
ldi R24,140
ldi R25,0
mov R2,R20
clr R3
eor R2,R24
eor R3,R25
mov R20,R2
L49:
.dbline 15
L44:
.dbline 10
ldi R24,2
mul R24,R22
mov R22,R0
L46:
.dbline 10
tst R22
brne L43
.dbline 16
subi R16,255 ; offset = 1
sbci R17,255
.dbline 17
L41:
.dbline 8
mov R2,R18
clr R3
subi R18,1
tst R2
brne L40
.dbline 18
mov R16,R20
.dbline -2
L39:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r crc 20 c
.dbsym r i 22 c
.dbsym r len 18 c
.dbsym r ptr 16 pc
.dbend
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2/crc8.h
_n::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2/crc8.h
.dbfile D:\mojinpan\485\485_slave2\main.c
.dbsym e n _n c
_flag_me::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
.dbsym e flag_me _flag_me c
_flag_all::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
.dbsym e flag_all _flag_all c
.area vector(rom, abs)
.org 120
jmp _RXC_Int
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
.area text(rom, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
.dbfunc e RXC_Int _RXC_Int fV
; ERROR -> R20
.even
_RXC_Int::
xcall push_lset
xcall push_gset1
sbiw R28,2
.dbline -1
.dbline 35
.dbline 36
clr R20
.dbline 38
lds R2,155
sbrc R2,2
rjmp L54
lds R2,155
sbrs R2,4
rjmp L52
L54:
.dbline 38
ldi R20,1
L52:
.dbline 39
ldi R24,<_inbox
ldi R25,>_inbox
lds R30,_n
clr R31
add R30,R24
adc R31,R25
lds R2,156
std z+0,R2
.dbline 40
lds R24,_n
subi R24,255 ; addi 1
sts _n,R24
.dbline 43
tst R20
breq L55
.dbline 44
.dbline 45
clr R2
sts _n,R2
.dbline 46
sts _inbox,R2
.dbline 47
lds R24,155
ori R24,1
sts 155,R24
.dbline 48
L55:
.dbline 50
lds R24,_inbox
cpi R24,2
breq L59
cpi R24,255
brne L57
L59:
.dbline 50
.dbline 50
lds R24,155
andi R24,254
sts 155,R24
.dbline 50
L57:
.dbline 51
lds R24,_n
cpi R24,10
brne L60
.dbline 52
.dbline 52
ldi R24,<_inbox
ldi R25,>_inbox
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
xcall _LCD_write_string
.dbline 53
clr R2
sts _n,R2
.dbline 54
lds R24,155
ori R24,1
sts 155,R24
.dbline 55
ldi R18,9
ldi R16,<_inbox
ldi R17,>_inbox
xcall _crc8
lds R2,_inbox+9
cp R2,R16
brne L62
.dbline 56
.dbline 57
lds R24,_inbox
cpi R24,2
brne L65
.dbline 57
ldi R24,1
sts _flag_me,R24
L65:
.dbline 59
lds R24,_inbox
cpi R24,255
brne L67
.dbline 59
ldi R24,1
sts _flag_all,R24
L67:
.dbline 61
L62:
.dbline 62
L60:
.dbline -2
L51:
adiw R28,2
xcall pop_gset1
xcall pop_lset
.dbline 0 ; func end
reti
.dbsym r ERROR 20 c
.dbend
.dbfunc e out_485 _out_485 fV
; i -> R20
; ptr -> R22,R23
.even
_out_485::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 68
.dbline 70
ldi R24,1
sts _send,R24
.dbline 71
ldi R20,1
xjmp L73
L70:
.dbline 71
ldi R24,<_send
ldi R25,>_send
mov R30,R20
clr R31
add R30,R24
adc R31,R25
movw R26,R22
ld R2,X+
movw R22,R26
std z+0,R2
L71:
.dbline 71
inc R20
L73:
.dbline 71
cpi R20,9
brlo L70
.dbline 72
ldi R18,9
ldi R16,<_send
ldi R17,>_send
xcall _crc8
sts _send+9,R16
.dbline 73
ldi R18,10
ldi R16,<_send
ldi R17,>_send
xcall _usart_out
.dbline -2
L69:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r ptr 22 pc
.dbend
.dbfunc e main _main fV
.even
_main::
sbiw R28,2
.dbline -1
.dbline 79
.dbline 80
xcall _usart_init
.dbline 81
sei
.dbline 82
xcall _LCD_init
.dbline 83
ldi R24,<L76
ldi R25,>L76
std y+1,R25
std y+0,R24
clr R18
clr R16
xcall _LCD_write_string
.dbline 84
ldi R24,<L77
ldi R25,>L77
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
xcall _LCD_write_string
xjmp L79
X0:
.dbline 86
L81:
.dbline 88
.dbline 90
ldi R24,<_inbox
ldi R25,>_inbox
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
xcall _LCD_write_string
.dbline 91
clr R2
sts _n,R2
.dbline 92
sts _inbox,R2
.dbline 93
sts _flag_me,R2
.dbline 94
ldi R16,<L84
ldi R17,>L84
xcall _out_485
.dbline 95
ldi R24,<_send
ldi R25,>_send
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 96
ldi R24,<L85
ldi R25,>L85
std y+1,R25
std y+0,R24
clr R18
ldi R16,13
xcall _LCD_write_string
.dbline 97
ldi R24,<L85
ldi R25,>L85
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,13
xcall _LCD_write_string
.dbline 100
L82:
.dbline 87
lds R2,_flag_me
tst R2
brne L81
.dbline 101
L79:
.dbline 85
xjmp L82
X1:
.dbline 101
.dbline -2
L75:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
_inbox::
.blkb 10
.dbsym e inbox _inbox A[10:10]c
_send::
.blkb 10
.dbsym e send _send A[10:10]c
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
L85:
.blkb 6
.area idata
.byte 32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
L84:
.blkb 9
.area idata
.byte 50,44,'o,'k,33,33,33,33,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
L77:
.blkb 5
.area idata
.byte 'i,'n,'t,58,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
L76:
.blkb 5
.area idata
.byte 'o,'u,'t,58,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_slave2\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -