📄 ad.s
字号:
ldi R20,10
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
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall mod32s
mov R10,R16
.dbline 502
mov R2,R10
clr R3
clr R4
clr R5
movw R30,R28
ldd R6,z+10
ldd R7,z+11
ldd R8,z+12
ldd R9,z+13
sub R6,R2
sbc R7,R3
sbc R8,R4
sbc R9,R5
movw R30,R28
std z+10,R6
std z+11,R7
std z+12,R8
std z+13,R9
.dbline 503
ldi R20,10
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
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
movw R30,R28
std z+10,R16
std z+11,R17
std z+12,R18
std z+13,R19
.dbline 505
mov R18,R10
subi R18,128 ; addi 128
mov R16,R12
subi R16,128 ; addi 128
xcall _write7279
.dbline 506
L75:
.dbline 499
inc R12
L77:
.dbline 499
cp R14,R12
brlo X3
xjmp L74
X3:
.dbline -2
.dbline 507
;
;
;
;
;
;
;
;
L73:
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r temp_char 10 c
.dbsym r i 12 c
.dbsym l num 10 L
.dbsym r dig_end 14 c
.dbsym r dig_start 10 c
.dbend
.dbfunc e get_data _get_data fL
; temp_long -> y+0
; temp_char -> R10
; i -> R12
; dig_end -> R14
; dig_start -> y+14
.even
_get_data::
xcall push_arg4
xcall push_gset5
mov R14,R18
sbiw R28,4
.dbline -1
.dbline 510
;
;
;
.dbline 511
;
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 514
;
;
;
ldd R12,y+14
xjmp L82
L79:
.dbline 515
ldi R18,8
mov R16,R12
subi R16,112 ; addi 144
xcall _write7279
L80:
.dbline 514
inc R12
L82:
.dbline 514
cp R14,R12
brge L79
.dbline 517
;
;
;
mov R12,R14
xjmp L86
L83:
.dbline 518
.dbline 519
xcall _get_key7279
mov R10,R16
.dbline 521
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
xcall empy32s
movw R30,R28
std z+0,R16
std z+1,R17
std z+2,R18
std z+3,R19
.dbline 522
mov R2,R10
clr R3
sbrc R2,7
com R3
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
movw R30,R28
ldd R6,z+0
ldd R7,z+1
ldd R8,z+2
ldd R9,z+3
add R6,R2
adc R7,R3
adc R8,R4
adc R9,R5
movw R30,R28
std z+0,R6
std z+1,R7
std z+2,R8
std z+3,R9
.dbline 524
mov R18,R10
subi R18,128 ; addi 128
mov R16,R12
subi R16,128 ; addi 128
xcall _write7279
.dbline 525
L84:
.dbline 517
dec R12
L86:
.dbline 517
ldd R0,y+14
cp R12,R0
brlt X4
xjmp L83
X4:
.dbline 527
;
;
;
;
;
;
;
;
;
;
movw R30,R28
ldd R16,z+0
ldd R17,z+1
ldd R18,z+2
ldd R19,z+3
.dbline -2
L78:
adiw R28,4
xcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym l temp_long 0 L
.dbsym r temp_char 10 C
.dbsym r i 12 C
.dbsym r dig_end 14 C
.dbsym l dig_start 14 C
.dbend
.dbfile D:\AVR\AD/TIMEDELAY.C
.dbfunc e delay_us _delay_us fV
; M -> <dead>
.even
_delay_us::
.dbline -1
.dbline 24
.dbline 26
nop
.dbline -2
.dbline 28
L87:
.dbline 0 ; func end
ret
.dbsym l M 1 c
.dbend
.dbfunc e delay_10us _delay_10us fV
; I -> R22,R23
; M -> R20,R21
.even
_delay_10us::
xcall push_gset2
movw R20,R16
.dbline -1
.dbline 32
xjmp L90
L89:
.dbline 34
.dbline 35
ldi R22,4
ldi R23,0
L92:
.dbline 37
.dbline 38
xcall _delay_us
.dbline 39
L93:
.dbline 39
movw R2,R22
subi R22,1
sbci R23,0
tst R2
brne L92
tst R3
brne L92
X5:
.dbline 40
L90:
.dbline 33
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L89
tst R3
brne L89
X6:
.dbline -2
.dbline 41
L88:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r I 22 i
.dbsym r M 20 i
.dbend
.dbfunc e delay_100us _delay_100us fV
; I -> R20,R21
; M -> R22,R23
.even
_delay_100us::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 45
L96:
.dbline 46
L97:
.dbline 46
movw R2,R22
subi R22,1
sbci R23,0
tst R2
brne L96
tst R3
brne L96
X7:
.dbline 47
.dbline 48
ldi R20,5286
ldi R21,20
L99:
.dbline 50
.dbline 51
xcall _delay_us
.dbline 52
nop
.dbline 53
L100:
.dbline 53
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L99
tst R3
brne L99
X8:
.dbline 54
.dbline -2
.dbline 55
L95:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r I 20 i
.dbsym r M 22 i
.dbend
.dbfunc e delay_ms _delay_ms fV
; R -> R22
; I -> R10
; M -> R20,R21
.even
_delay_ms::
xcall push_gset3
movw R20,R16
.dbline -1
.dbline 58
xjmp L104
L103:
.dbline 60
.dbline 61
ldi R24,198
mov R10,R24
.dbline 62
ldi R22,3
L106:
.dbline 64
.dbline 65
xcall _delay_us
.dbline 66
xcall _delay_us
.dbline 67
xcall _delay_us
.dbline 68
xcall _delay_us
.dbline 69
L107:
.dbline 69
mov R2,R10
clr R3
mov R24,R2
subi R24,1
mov R10,R24
tst R2
brne L106
xjmp L110
L109:
.dbline 71
.dbline 72
nop
.dbline 73
L110:
.dbline 70
mov R2,R22
clr R3
subi R22,1
tst R2
brne L109
.dbline 74
nop
.dbline 75
nop
.dbline 76
nop
.dbline 77
L104:
.dbline 59
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L103
tst R3
brne L103
X9:
.dbline -2
.dbline 78
L102:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r R 22 c
.dbsym r I 10 c
.dbsym r M 20 i
.dbend
.dbfunc e delay_10ms _delay_10ms fV
; M -> R20,R21
.even
_delay_10ms::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 81
xjmp L114
L113:
.dbline 83
.dbline 84
ldi R16,10
ldi R17,0
xcall _delay_ms
.dbline 85
L114:
.dbline 82
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L113
tst R3
brne L113
X10:
.dbline -2
.dbline 86
L112:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r M 20 i
.dbend
.dbfunc e delay_100ms _delay_100ms fV
; M -> R20,R21
.even
_delay_100ms::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 89
xjmp L118
L117:
.dbline 91
.dbline 92
ldi R16,100
ldi R17,0
xcall _delay_ms
.dbline 93
L118:
.dbline 90
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L117
tst R3
brne L117
X11:
.dbline -2
.dbline 94
L116:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r M 20 i
.dbend
.dbfunc e delay_s _delay_s fV
; M -> R20,R21
.even
_delay_s::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 98
xjmp L122
L121:
.dbline 100
.dbline 101
ldi R16,1000
ldi R17,3
xcall _delay_ms
.dbline 102
L122:
.dbline 99
movw R2,R20
subi R20,1
sbci R21,0
tst R2
brne L121
tst R3
brne L121
X12:
.dbline -2
.dbline 103
L120:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r M 20 i
.dbend
.dbfile D:\AVR\AD\ad.c
.dbfunc e port_init _port_init fV
.even
_port_init::
.dbline -1
.dbline 17
.dbline 18
ldi R24,255
out 0x1b,R24
.dbline 19
clr R2
out 0x1a,R2
.dbline 20
out 0x18,R24
.dbline 21
out 0x17,R2
.dbline 22
out 0x15,R24
.dbline 23
ldi R24,30
out 0x14,R24
.dbline 24
ldi R24,255
out 0x12,R24
.dbline 25
out 0x11,R2
.dbline -2
.dbline 26
L124:
.dbline 0 ; func end
ret
.dbend
.dbfunc e adc_init _adc_init fV
.even
_adc_init::
.dbline -1
.dbline 31
.dbline 32
clr R2
out 0x1b,R2
.dbline 33
ldi R24,255
out 0x1b,R24
.dbline 35
out 0x6,R2
.dbline 36
lds R24,_ad_mux
andi R24,15
out 0x7,R24
.dbline 37
ldi R24,128
out 0x8,R24
.dbline 38
ldi R24,206
out 0x6,R24
.dbline -2
.dbline 39
L125:
.dbline 0 ; func end
ret
.dbend
.dbfunc e bubble_sort _bubble_sort fV
; k -> R20,R21
; t -> R14,R15
; h -> R22,R23
; j -> R12,R13
; n -> R20,R21
; x -> R10,R11
.even
_bubble_sort::
xcall push_gset5
movw R20,R18
movw R10,R16
.dbline -1
.dbline 42
.dbline 45
movw R22,R20
subi R22,1
sbci R23,0
xjmp L130
L127:
.dbline 46
.dbline 47
clr R12
clr R13
clr R20
clr R21
xjmp L134
L131:
.dbline 48
.dbline 49
ldi R16,2
ldi R17,0
movw R18,R12
xcall empy16s
movw R2,R16
add R2,R10
adc R3,R11
movw R30,R2
ldd R4,z+2
ldd R5,z+3
movw R30,R2
ldd R2,z+0
ldd R3,z+1
cp R4,R2
cpc R5,R3
brge L135
.dbline 50
.dbline 51
ldi R16,2
ldi R17,0
movw R18,R12
xcall empy16s
movw R30,R16
add R30,R10
adc R31,R11
ldd R14,z+0
ldd R15,z+1
.dbline 52
ldi R16,2
ldi R17,0
movw R18,R12
xcall empy16s
movw R2,R16
add R2,R10
adc R3,R11
movw R30,R2
ldd R4,z+2
ldd R5,z+3
movw R30,R2
std z+1,R5
std z+0,R4
.dbline 53
ldi R16,2
ldi R17,0
movw R18,R12
xcall empy16s
movw R30,R16
add R30,R10
adc R31,R11
std z+3,R15
std z+2,R14
.dbline 54
movw R20,R12
.dbline 55
L135:
.dbline 56
L132:
.dbline 47
movw R24,R12
adiw R24,1
movw R12,R24
L134:
.dbline 47
cp R12,R22
cpc R13,R23
brge X13
xjmp L131
X13:
.dbline 57
L128:
.dbline 45
movw R22,R20
L130:
.dbline 45
clr R2
clr R3
cp R2,R22
cpc R3,R23
brge X14
xjmp L127
X14:
.dbline -2
.dbline 58
L126:
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r k 20 I
.dbsym r t 14 I
.dbsym r h 22 I
.dbsym r j 12 I
.dbsym r n 20 I
.dbsym r x 10 pI
.dbend
.dbfunc e adc _adc fI
; sum -> y+24
; result -> y+0
; i -> R10
.even
_adc::
xcall push_gset3
sbiw R28,28
.dbline -1
.dbline 62
.dbline 64
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
std z+24,R20
std z+25,R21
std z+26,R22
std z+27,R23
.dbline 66
clr R10
xjmp L141
L138:
.dbline 67
.dbline 68
ldi R16,1
ldi R17,0
xcall _delay_ms
.dbline 69
sbi 0x6,6
L142:
.dbline 70
L143:
.dbline 70
sbis 0x6,4
rjmp L142
.dbline 71
cbi 0x6,4
.dbline 72
ldi R24,2
mul R24,R10
movw R30,R0
movw R24,R28
add R30,R24
adc R31,R25
in R2,0x4
in R3,0x5
std z+1,R3
std z+0,R2
.dbline 73
L139:
.dbline 66
inc R10
L141:
.dbline 66
mov R24,R10
cpi R24,12
brlo L138
.dbline 74
ldi R18,12
ldi R19,0
movw R16,R28
xcall _bubble_sort
.dbline 75
clr R10
inc R10
xjmp L148
L145:
.dbline 76
ldi R24,2
mul R24,R10
movw R30,R0
movw R24,R28
add R30,R24
adc R31,R25
ldd R2,z+0
ldd R3,z+1
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
movw R30,R28
ldd R6,z+24
ldd R7,z+25
ldd R8,z+26
ldd R9,z+27
add R6,R2
adc R7,R3
adc R8,R4
adc R9,R5
movw R30,R28
std z+24,R6
std z+25,R7
std z+26,R8
std z+27,R9
L146:
.dbline 75
inc R10
L148:
.dbline 75
mov R24,R10
cpi R24,11
brlo L145
.dbline 77
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+24
ldd R3,z+25
ldd R4,z+26
ldd R5,z+27
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32s
.dbline -2
L137:
adiw R28,28
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym l sum 24 L
.dbsym l result 0 A[24:12]I
.dbsym r i 10 c
.dbend
.area vector(rom, abs)
.org 56
jmp _adc_isr
.area text(rom, con, rel)
.dbfile D:\AVR\AD\ad.c
.dbfunc e adc_isr _adc_isr fV
.even
_adc_isr::
xcall push_lset
sbiw R28,4
.dbline -1
.dbline 83
.dbline 86
cli
.dbline 87
lds R24,_ad_mux
andi R24,15
out 0x7,R24
.dbline 89
xcall _adc
sts _adc_rel+1,R17
sts _adc_rel,R16
.dbline 93
lds R2,_ad_mux
tst R2
brne L150
.dbline 94
.dbline 95
movw R2,R16
clr R4
clr R5
std y+0,R2
std y+1,R3
std y+2,R4
std y+3,R5
ldi R18,3
clr R16
xcall _dis_data
.dbline 97
lds R2,_adc_rel
lds R3,_adc_rel+1
sts _adc_old+1,R3
sts _adc_old,R2
.dbline 98
xjmp L151
L150:
.dbline 101
.dbline 102
lds R2,_adc_rel
lds R3,_adc_rel+1
clr R4
clr R5
std y+0,R2
std y+1,R3
std y+2,R4
std y+3,R5
ldi R18,7
ldi R16,4
xcall _dis_data
.dbline 104
lds R2,_adc_rel
lds R3,_adc_rel+1
sts _adc_old+1,R3
sts _adc_old,R2
.dbline 105
L151:
.dbline 108
lds R24,_ad_mux
cpi R24,1
brsh L152
.dbline 109
subi R24,255 ; addi 1
sts _ad_mux,R24
xjmp L153
L152:
.dbline 111
clr R2
sts _ad_mux,R2
L153:
.dbline 114
sbi 0x6,6
.dbline 115
sei
.dbline -2
.dbline 117
L149:
adiw R28,4
xcall pop_lset
.dbline 0 ; func end
reti
.dbend
.dbfunc e init_devices _init_devices fV
.even
_init_devices::
.dbline -1
.dbline 123
.dbline 125
cli
.dbline 126
xcall _port_init
.dbline 127
xcall _adc_init
.dbline 129
clr R2
out 0x35,R2
.dbline 130
out 0x3b,R2
.dbline 131
out 0x39,R2
.dbline 132
sei
.dbline -2
.dbline 134
L154:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; i -> <dead>
.even
_main::
.dbline -1
.dbline 138
.dbline 140
clr R2
sts _ad_mux,R2
.dbline 141
clr R3
sts _adc_old+1,R3
sts _adc_old,R2
.dbline 142
xcall _init_devices
.dbline 143
xcall _init_7279
.dbline 146
sbi 0x6,6
L156:
.dbline 148
.dbline 151
L157:
.dbline 147
xjmp L156
X15:
.dbline -2
.dbline 153
L155:
.dbline 0 ; func end
ret
.dbsym l i 1 I
.dbend
.area bss(ram, con, rel)
.dbfile D:\AVR\AD\ad.c
_ad_mux::
.blkb 1
.dbsym e ad_mux _ad_mux c
_adc_old::
.blkb 2
.dbsym e adc_old _adc_old i
_adc_rel::
.blkb 2
.dbsym e adc_rel _adc_rel i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -