📄 main.s
字号:
add R30,R24
adc R31,R25
clr R2
std z+0,R2
L3:
.dbline 37
inc R16
L5:
.dbline 37
cpi R16,64
brlo L2
.dbline 41
;
;
;
;
ldi R24,255
out 0x1a,R24
.dbline 42
;
out 0x17,R24
.dbline 43
;
ldi R24,31
out 0x14,R24
.dbline 46
;
;
;
ldi R24,1
sts _dir_f,R24
.dbline 48
;
;
cli
.dbline 49
;
ldi R24,224
out 0x2e,R24
.dbline 50
;
ldi R24,231
out 0x2d,R24
.dbline 51
;
ldi R24,80
out 0x2c,R24
.dbline 52
;
ldi R24,1
out 0x2b,R24
.dbline 53
;
ldi R24,244
out 0x2a,R24
.dbline 54
;
ldi R24,1
out 0x29,R24
.dbline 55
;
ldi R24,244
out 0x28,R24
.dbline 57
;
;
ldi R24,1
out 0x27,R24
.dbline 58
;
ldi R24,244
out 0x26,R24
.dbline 59
;
clr R2
out 0x2f,R2
.dbline 60
;
ldi R24,2
out 0x2e,R24
.dbline 61
;
out 0x35,R2
.dbline 62
;
out 0x3b,R2
.dbline 63
;
ldi R24,4
out 0x39,R24
.dbline 64
;
sei
.dbline -2
.dbline 65
;
L1:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e print_char _print_char fV
; tab_n -> <dead>
; i -> R22
; d1 -> R12
; d0 -> R14
; j -> R10
; k -> R20,R21
; p -> y+10
.even
_print_char::
st -y,r17
st -y,r16
xcall push_gset5
.dbline -1
.dbline 69
;
;
;
;
.dbline 70
;
clr R22
xjmp L8
L7:
.dbline 74
;
;
;
;
.dbline 75
;
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R24,z+0
cpi R24,128
brsh X0
xjmp L10
X0:
.dbline 76
;
.dbline 78
;
;
clr R10
xjmp L15
L12:
.dbline 79
;
.dbline 80
;
ldi R24,34
mul R24,R10
movw R2,R0
mov R4,R22
clr R5
ldd R0,y+10
ldd R1,y+11
add R4,R0
adc R5,R1
ldi R24,<_gb_16
ldi R25,>_gb_16
movw R30,R2
add R30,R24
adc R31,R25
lpm R30,Z
movw R26,R4
ld R6,x
cp R30,R6
breq X1
xjmp L16
X1:
ldi R24,<_gb_16+1
ldi R25,>_gb_16+1
movw R30,R2
add R30,R24
adc R31,R25
lpm R30,Z
adiw R26,1
ld R2,x
cp R30,R2
breq X2
xjmp L16
X2:
.dbline 81
;
.dbline 82
;
lds R24,_dir_f
cpi R24,1
brne L19
.dbline 83
;
clr R20
clr R21
L21:
.dbline 84
.dbline 85
ldi R24,34
mul R24,R10
movw R2,R0
ldi R24,<_gb_16+2
ldi R25,>_gb_16+2
add R2,R24
adc R3,R25
movw R30,R20
add R30,R2
adc R31,R3
lpm R14,Z
.dbline 86
subi R20,255 ; offset = 1
sbci R21,255
.dbline 87
ldi R24,34
mul R24,R10
movw R2,R0
ldi R24,<_gb_16+2
ldi R25,>_gb_16+2
add R2,R24
adc R3,R25
movw R30,R20
add R30,R2
adc R31,R3
lpm R12,Z
.dbline 88
mov R18,R12
clr R19
mov R16,R14
clr R17
xcall _move_to_buffer
.dbline 89
ldi R16,1
ldi R17,0
xcall _delay
.dbline 90
L22:
.dbline 83
subi R20,255 ; offset = 1
sbci R21,255
.dbline 83
cpi R20,32
ldi R30,0
cpc R21,R30
brlt L21
xjmp L14
L19:
.dbline 92
;
;
;
;
;
;
;
;
;
ldi R20,31
ldi R21,0
L27:
.dbline 93
.dbline 94
ldi R24,34
mul R24,R10
movw R2,R0
ldi R24,<_gb_16+2
ldi R25,>_gb_16+2
add R2,R24
adc R3,R25
movw R30,R20
add R30,R2
adc R31,R3
lpm R12,Z
.dbline 95
subi R20,1
sbci R21,0
.dbline 96
ldi R24,34
mul R24,R10
movw R2,R0
ldi R24,<_gb_16+2
ldi R25,>_gb_16+2
add R2,R24
adc R3,R25
movw R30,R20
add R30,R2
adc R31,R3
lpm R14,Z
.dbline 97
mov R18,R12
clr R19
mov R16,R14
clr R17
xcall _move_to_buffer
.dbline 98
ldi R16,1
ldi R17,0
xcall _delay
.dbline 99
L28:
.dbline 92
subi R20,1
sbci R21,0
.dbline 92
cpi R20,0
ldi R30,0
cpc R21,R30
brge L27
.dbline 100
;
;
;
;
;
;
;
;
xjmp L14
L16:
.dbline 102
L13:
.dbline 78
inc R10
L15:
.dbline 78
ldi R24,62
cp R24,R10
brlo X3
xjmp L12
X3:
L14:
.dbline 104
;
;
;
;
ldi R24,62
cp R24,R10
brsh L33
.dbline 105
;
clr R20
clr R21
L35:
.dbline 106
.dbline 107
clr R14
.dbline 108
clr R12
.dbline 109
mov R18,R12
clr R19
mov R16,R14
clr R17
xcall _move_to_buffer
.dbline 110
ldi R16,1
ldi R17,0
xcall _delay
.dbline 111
L36:
.dbline 105
subi R20,255 ; offset = 1
sbci R21,255
.dbline 105
cpi R20,16
ldi R30,0
cpc R21,R30
brlt L35
L33:
.dbline 112
;
;
;
;
;
;
;
subi R22,254 ; addi 2
.dbline 113
;
xjmp L11
L10:
.dbline 115
;
;
.dbline 116
;
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R24,z+0
subi R24,32
mov R10,R24
.dbline 117
;
lds R24,_dir_f
cpi R24,1
brne L39
.dbline 118
;
clr R20
clr R21
L41:
.dbline 119
.dbline 120
ldi R24,16
mul R24,R10
movw R30,R0
add R30,R20
adc R31,R21
ldi R24,<_ASC_MSK
ldi R25,>_ASC_MSK
add R30,R24
adc R31,R25
lpm R14,Z
.dbline 121
subi R20,255 ; offset = 1
sbci R21,255
.dbline 122
ldi R24,16
mul R24,R10
movw R30,R0
add R30,R20
adc R31,R21
ldi R24,<_ASC_MSK
ldi R25,>_ASC_MSK
add R30,R24
adc R31,R25
lpm R12,Z
.dbline 123
mov R18,R12
clr R19
mov R16,R14
clr R17
xcall _move_to_buffer
.dbline 124
ldi R16,1
ldi R17,0
xcall _delay
.dbline 125
L42:
.dbline 118
subi R20,255 ; offset = 1
sbci R21,255
.dbline 118
cpi R20,16
ldi R30,0
cpc R21,R30
brlt L41
xjmp L40
L39:
.dbline 127
;
;
;
;
;
;
;
;
;
ldi R20,15
ldi R21,0
L45:
.dbline 128
.dbline 129
ldi R24,16
mul R24,R10
movw R30,R0
add R30,R20
adc R31,R21
ldi R24,<_ASC_MSK
ldi R25,>_ASC_MSK
add R30,R24
adc R31,R25
lpm R12,Z
.dbline 130
subi R20,1
sbci R21,0
.dbline 131
ldi R24,16
mul R24,R10
movw R30,R0
add R30,R20
adc R31,R21
ldi R24,<_ASC_MSK
ldi R25,>_ASC_MSK
add R30,R24
adc R31,R25
lpm R14,Z
.dbline 132
mov R18,R12
clr R19
mov R16,R14
clr R17
xcall _move_to_buffer
.dbline 133
ldi R16,1
ldi R17,0
xcall _delay
.dbline 134
L46:
.dbline 127
subi R20,1
sbci R21,0
.dbline 127
cpi R20,0
ldi R30,0
cpc R21,R30
brge L45
L40:
.dbline 135
;
;
;
;
;
;
;
;
inc R22
.dbline 136
;
L11:
.dbline 137
L8:
.dbline 73
mov R30,R22
clr R31
ldd R0,y+10
ldd R1,y+11
add R30,R0
adc R31,R1
ldd R2,z+0
clr R3
cp R3,R2
brsh X4
xjmp L7
X4:
.dbline -2
.dbline 138
;
;
L6:
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym l tab_n 1 c
.dbsym r i 22 c
.dbsym r d1 12 c
.dbsym r d0 14 c
.dbsym r j 10 c
.dbsym r k 20 I
.dbsym l p 10 pc
.dbend
.dbfunc e move_to_buffer _move_to_buffer fV
; i -> R20
; d1 -> R18
; d0 -> R16
.even
_move_to_buffer::
xcall push_gset1
.dbline -1
.dbline 143
;
;
;
;
;
.dbline 145
;
;
lds R2,_dir_f
tst R2
brne L50
.dbline 146
;
.dbline 147
;
clr R20
xjmp L55
L52:
.dbline 148
.dbline 149
mov R2,R20
clr R3
ldi R24,63
ldi R25,0
sub R24,R2
sbc R25,R3
movw R2,R24
ldi R24,<_display_buffer-2
ldi R25,>_display_buffer-2
movw R30,R2
add R30,R24
adc R31,R25
ldd R4,z+0
ldi R24,<_display_buffer
ldi R25,>_display_buffer
movw R30,R2
add R30,R24
adc R31,R25
std z+0,R4
.dbline 150
L53:
.dbline 147
inc R20
L55:
.dbline 147
cpi R20,62
brlo L52
.dbline 151
;
;
;
;
sts _display_buffer,R16
.dbline 152
;
sts _display_buffer+1,R18
.dbline 153
;
xjmp L51
L50:
.dbline 155
;
;
.dbline 156
;
clr R20
xjmp L61
L58:
.dbline 157
.dbline 158
ldi R24,<_display_buffer+2
ldi R25,>_display_buffer+2
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_display_buffer
ldi R25,>_display_buffer
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 159
L59:
.dbline 156
inc R20
L61:
.dbline 156
cpi R20,62
brlo L58
.dbline 160
sts _display_buffer+62,R16
.dbline 161
sts _display_buffer+63,R18
.dbline 162
L51:
.dbline -2
.dbline 163
;
;
;
;
;
;
;
L49:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r d1 18 c
.dbsym r d0 16 c
.dbend
.area vector(rom, abs)
.org 32
jmp _scan_led
.area text(rom, con, rel)
.dbfile E:/32x16汉字/32x16led.h
.dbfunc e scan_led _scan_led fV
; scan_c -> R20
; buf_c -> R22
.even
_scan_led::
xcall push_lset
xcall push_gset2
.dbline -1
.dbline 167
;
;
;
;
.dbline 168
;
clr R20
.dbline 169
;
ldi R24,231
out 0x2d,R24
.dbline 170
;
ldi R24,80
out 0x2c,R24
.dbline 170
.dbline 171
;
clr R22
xjmp L69
L66:
.dbline 172
.dbline 175
ldi R24,<_display_buffer
ldi R25,>_display_buffer
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x18,R2
.dbline 176
inc R22
.dbline 177
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x1b,R2
.dbline 178
inc R22
.dbline 179
out 0x15,R20
.dbline 180
ldi R16,8
ldi R17,0
xcall _delay
.dbline 183
inc R20
.dbline 184
L67:
.dbline 171
L69:
.dbline 171
cpi R22,64
brlo L66
.dbline -2
.dbline 185
;
;
;
;
;
;
;
;
;
;
;
;
;
;
L65:
xcall pop_gset2
xcall pop_lset
.dbline 0 ; func end
reti
.dbsym r scan_c 20 c
.dbsym r buf_c 22 c
.dbend
.dbfunc e delay _delay fV
; i -> R20
; j -> R22
; d_time -> R16
.even
_delay::
xcall push_gset2
.dbline -1
.dbline 189
;
;
;
;
.dbline 191
;
;
clr R20
xjmp L74
L71:
.dbline 192
;
.dbline 193
;
ldi R22,25
L75:
.dbline 194
L76:
.dbline 194
mov R2,R22
clr R3
subi R22,1
tst R2
brne L75
.dbline 195
L72:
.dbline 191
inc R20
L74:
.dbline 191
cp R16,R20
brsh L71
.dbline -2
.dbline 196
;
;
;
L70:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r j 22 c
.dbsym r d_time 16 c
.dbend
.dbfile E:\32x16汉字\main.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 8
xjmp L80
L79:
.dbline 10
.dbline 11
xcall _led_initial
.dbline 12
ldi R16,<L82
ldi R17,>L82
xcall _print_char
.dbline 13
ldi R16,<L83
ldi R17,>L83
xcall _print_char
.dbline 14
ldi R16,50
xcall _delay
.dbline 16
ldi R16,<L84
ldi R17,>L84
xcall _print_char
.dbline 17
ldi R16,<L85
ldi R17,>L85
xcall _print_char
.dbline 18
ldi R16,<L86
ldi R17,>L86
xcall _print_char
.dbline 19
ldi R16,<L87
ldi R17,>L87
xcall _print_char
.dbline 20
ldi R16,50
xcall _delay
.dbline 22
L80:
.dbline 9
xjmp L79
X5:
.dbline -2
.dbline 23
L78:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile E:\32x16汉字\main.c
_display_buffer::
.blkb 64
.dbfile E:/32x16汉字/32x16led.h
.dbsym e display_buffer _display_buffer A[64:64]c
_dir_f::
.blkb 1
.dbsym e dir_f _dir_f c
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L87:
.blkb 39
.area idata
.byte 207,224,208,197,187,187,204,168,186,195,181,227,181,196,181,231
.byte 196,212,187,225,211,208,184,252,186,195,181,196,208,167,185,251
.byte 33,32,193,245,206,176,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L86:
.blkb 38
.area idata
.byte 206,210,181,196,181,231,196,212,204,171,178,238,212,203,208,208
.byte 198,240,192,180,192,207,202,199,210,187,182,217,210,187,182,217
.byte 181,196,94,95,94,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L85:
.blkb 40
.area idata
.byte 207,212,202,190,208,167,185,251,211,235,209,211,202,177,178,206
.byte 202,253,186,205,181,231,196,212,203,217,182,200,211,208,186,220
.byte 180,243,185,216,207,181,46,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L84:
.blkb 18
.area idata
.byte 215,212,188,186,177,224,181,196,193,183,207,176,179,204,208,242
.byte 44,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L83:
.blkb 9
.area idata
.byte 206,210,176,174,189,240,211,227,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
L82:
.blkb 24
.area idata
.byte 'T,'E,'S,'T,32,'L,'E,'D,32,48,49,50,51,52,53,54
.byte 55,56,57,32,'a,'b,'c,0
.area data(ram, con, rel)
.dbfile E:/32x16汉字/32x16led.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -