📄 adconv.lst
字号:
(0108) {
(0109) unsigned int count,i;
(0110) unsigned int j;
(0111) unsigned long total=0;
0118 E040 LDI R20,0
0119 E050 LDI R21,0
011A E060 LDI R22,0
011B E070 LDI R23,0
011C 01FE MOVW R30,R28
011D 8340 STD Z+0,R20
011E 8351 STD Z+1,R21
011F 8362 STD Z+2,R22
0120 8373 STD Z+3,R23
(0112) unsigned char num=0;
0121 2400 CLR R0
0122 820C STD Y+4,R0
(0113) ADMUX=0x00;
0123 2422 CLR R2
0124 B827 OUT 0x07,R2
(0114) ADCSRA=0xE6;
0125 EE86 LDI R24,0xE6
0126 B986 OUT 0x06,R24
(0115)
(0116)
(0117) Display(0xA4,0xff);
0127 EF2F LDI R18,0xFF
0128 EA04 LDI R16,0xA4
0129 DF3D RCALL _Display
012A C066 RJMP 0x0191
(0118) while(1)
(0119) {
(0120)
(0121) count=20000;
012B E280 LDI R24,0x20
012C E49E LDI R25,0x4E
012D 016C MOVW R12,R24
(0122) while(count--);
012E 0116 MOVW R2,R12
012F 01C1 MOVW R24,R2
0130 9701 SBIW R24,1
0131 016C MOVW R12,R24
0132 2022 TST R2
0133 F7D1 BNE 0x012E
0134 2033 TST R3
0135 F7C1 BNE 0x012E
(0123) i=ADC_Conv();
0136 DFD5 RCALL _ADC_Conv
0137 0158 MOVW R10,R16
(0124) total+=i;
0138 0115 MOVW R2,R10
0139 2444 CLR R4
013A 2455 CLR R5
013B 01FE MOVW R30,R28
013C 8060 LDD R6,Z+0
013D 8071 LDD R7,Z+1
013E 8082 LDD R8,Z+2
013F 8093 LDD R9,Z+3
0140 0C62 ADD R6,R2
0141 1C73 ADC R7,R3
0142 1C84 ADC R8,R4
0143 1C95 ADC R9,R5
0144 01FE MOVW R30,R28
0145 8260 STD Z+0,R6
0146 8271 STD Z+1,R7
0147 8282 STD Z+2,R8
0148 8293 STD Z+3,R9
(0125) num++;
0149 800C LDD R0,Y+4
014A 9403 INC R0
014B 820C STD Y+4,R0
(0126) if(num>=10)
014C 2D80 MOV R24,R0
014D 308A CPI R24,0xA
014E F408 BCC 0x0150
014F C041 RJMP 0x0191
(0127) {
(0128) i=total/10;
0150 E04A LDI R20,0xA
0151 E050 LDI R21,0
0152 E060 LDI R22,0
0153 E070 LDI R23,0
0154 01FE MOVW R30,R28
0155 8020 LDD R2,Z+0
0156 8031 LDD R3,Z+1
0157 8042 LDD R4,Z+2
0158 8053 LDD R5,Z+3
0159 937A ST R23,-Y
015A 936A ST R22,-Y
015B 935A ST R21,-Y
015C 934A ST R20,-Y
015D 0181 MOVW R16,R2
015E 0192 MOVW R18,R4
015F 940E01B5 CALL div32u
0161 0158 MOVW R10,R16
(0129) num=1;
0162 2400 CLR R0
0163 9403 INC R0
0164 820C STD Y+4,R0
(0130) total=0;
0165 E040 LDI R20,0
0166 E050 LDI R21,0
0167 E060 LDI R22,0
0168 E070 LDI R23,0
0169 01FE MOVW R30,R28
016A 8340 STD Z+0,R20
016B 8351 STD Z+1,R21
016C 8362 STD Z+2,R22
016D 8373 STD Z+3,R23
(0131) for(j=0;j<4;j++)
016E 24EE CLR R14
016F 24FF CLR R15
0170 C01B RJMP 0x018C
(0132) {
(0133) Display(i%10,j+1);
0171 2D2E MOV R18,R14
0172 5F2F SUBI R18,0xFF
0173 4F3F SBCI R19,0xFF
0174 E08A LDI R24,0xA
0175 E090 LDI R25,0
0176 932F PUSH R18
0177 933F PUSH R19
0178 019C MOVW R18,R24
0179 0185 MOVW R16,R10
017A 940E0199 CALL mod16u
017C 913F POP R19
017D 912F POP R18
017E DEE8 RCALL _Display
(0134) if(i!=0)
017F 20AA TST R10
0180 F411 BNE 0x0183
0181 20BB TST R11
0182 F031 BEQ 0x0189
(0135) {
(0136) i=i/10;
FILE: <library>
0183 E02A LDI R18,0xA
0184 E030 LDI R19,0
0185 0185 MOVW R16,R10
0186 940E019B CALL div16u
0188 0158 MOVW R10,R16
0189 01C7 MOVW R24,R14
018A 9601 ADIW R24,1
018B 017C MOVW R14,R24
018C 01C7 MOVW R24,R14
018D 3084 CPI R24,4
018E E0E0 LDI R30,0
018F 079E CPC R25,R30
0190 F300 BCS 0x0171
0191 CF99 RJMP 0x012B
0192 9625 ADIW R28,5
0193 9508 RET
push_arg4:
0194 933A ST R19,-Y
0195 932A ST R18,-Y
push_arg2:
0196 931A ST R17,-Y
0197 930A ST R16,-Y
0198 9508 RET
mod16u:
0199 9468 BSET 6
019A C001 RJMP xdiv16u
div16u:
019B 94E8 BCLR 6
xdiv16u:
019C 92EA ST R14,-Y
019D 92FA ST R15,-Y
019E 938A ST R24,-Y
019F 24EE CLR R14
01A0 24FF CLR R15
01A1 E180 LDI R24,0x10
01A2 0F00 LSL R16
01A3 1F11 ROL R17
01A4 1CEE ROL R14
01A5 1CFF ROL R15
01A6 16E2 CP R14,R18
01A7 06F3 CPC R15,R19
01A8 F018 BCS 0x01AC
01A9 1AE2 SUB R14,R18
01AA 0AF3 SBC R15,R19
01AB 9503 INC R16
01AC 958A DEC R24
01AD F7A1 BNE 0x01A2
01AE F416 BRTC 0x01B1
01AF 2D0E MOV R16,R14
01B0 2D1F MOV R17,R15
01B1 9189 LD R24,Y+
01B2 90F9 LD R15,Y+
01B3 90E9 LD R14,Y+
01B4 9508 RET
div32u:
01B5 94E8 BCLR 6
01B6 C001 RJMP 0x01B8
mod32u:
01B7 9468 BSET 6
01B8 D02F RCALL long_div_prolog
01B9 24CC CLR R12
01BA C008 RJMP 0x01C3
div32s:
01BB 94E8 BCLR 6
01BC C001 RJMP 0x01BE
mod32s:
01BD 9468 BSET 6
01BE D029 RCALL long_div_prolog
01BF FD37 SBRC R19,7
01C0 D053 RCALL neg_R16_R19
01C1 FDB7 SBRC R27,7
01C2 D05A RCALL neg_R24_R27
01C3 2477 CLR R7
01C4 2488 CLR R8
01C5 2499 CLR R9
01C6 24AA CLR R10
01C7 24BB CLR R11
01C8 D041 RCALL tst_R16_R19
01C9 F0C1 BEQ 0x01E2
01CA D044 RCALL tst_R24_R27
01CB F0B1 BEQ 0x01E2
01CC E2E8 LDI R30,0x28
01CD 0F00 LSL R16
01CE 1F11 ROL R17
01CF 1F22 ROL R18
01D0 1F33 ROL R19
01D1 1C77 ROL R7
01D2 1C88 ROL R8
01D3 1C99 ROL R9
01D4 1CAA ROL R10
01D5 1CBB ROL R11
01D6 1688 CP R8,R24
01D7 0699 CPC R9,R25
01D8 06AA CPC R10,R26
01D9 06BB CPC R11,R27
01DA F028 BCS 0x01E0
01DB 1A88 SUB R8,R24
01DC 0A99 SBC R9,R25
01DD 0AAA SBC R10,R26
01DE 0ABB SBC R11,R27
01DF 9503 INC R16
01E0 95EA DEC R30
01E1 F759 BNE 0x01CD
01E2 F426 BRTC 0x01E7
01E3 2D08 MOV R16,R8
01E4 2D19 MOV R17,R9
01E5 2D2A MOV R18,R10
01E6 2D3B MOV R19,R11
01E7 C013 RJMP long_div_epilog
long_div_prolog:
01E8 927A ST R7,-Y
01E9 928A ST R8,-Y
01EA 929A ST R9,-Y
01EB 92AA ST R10,-Y
01EC 92BA ST R11,-Y
01ED 92CA ST R12,-Y
01EE 93EA ST R30,-Y
01EF 938A ST R24,-Y
01F0 939A ST R25,-Y
01F1 93AA ST R26,-Y
01F2 93BA ST R27,-Y
01F3 858B LDD R24,Y+11
01F4 859C LDD R25,Y+12
01F5 85AD LDD R26,Y+13
01F6 85BE LDD R27,Y+14
01F7 2EC3 MOV R12,R19
01F8 F00E BRTS 0x01FA
01F9 26CB EOR R12,R27
01FA 9508 RET
long_div_epilog:
01FB FCC7 SBRC R12,7
01FC D017 RCALL neg_R16_R19
01FD 91B9 LD R27,Y+
01FE 91A9 LD R26,Y+
01FF 9199 LD R25,Y+
0200 9189 LD R24,Y+
0201 91E9 LD R30,Y+
0202 90C9 LD R12,Y+
0203 90B9 LD R11,Y+
0204 90A9 LD R10,Y+
0205 9099 LD R9,Y+
0206 9089 LD R8,Y+
0207 9079 LD R7,Y+
0208 9624 ADIW R28,4
0209 9508 RET
tst_R16_R19:
020A 2FE0 MOV R30,R16
020B 2BE1 OR R30,R17
020C 2BE2 OR R30,R18
020D 2BE3 OR R30,R19
020E 9508 RET
tst_R24_R27:
020F 2FE8 MOV R30,R24
0210 2BE9 OR R30,R25
0211 2BEA OR R30,R26
0212 2BEB OR R30,R27
0213 9508 RET
neg_R16_R19:
0214 9500 COM R16
0215 9510 COM R17
0216 9520 COM R18
0217 9530 COM R19
0218 5F0F SUBI R16,0xFF
0219 4F1F SBCI R17,0xFF
021A 4F2F SBCI R18,0xFF
021B 4F3F SBCI R19,0xFF
021C 9508 RET
neg_R24_R27:
021D 9580 COM R24
021E 9590 COM R25
021F 95A0 COM R26
0220 95B0 COM R27
0221 5F8F SUBI R24,0xFF
0222 4F9F SBCI R25,0xFF
0223 4FAF SBCI R26,0xFF
0224 4FBF SBCI R27,0xFF
0225 9508 RET
pop_gset5:
0226 27EE CLR R30
0227 940C0235 JMP pop
push_gset5:
0229 92FA ST R15,-Y
022A 92EA ST R14,-Y
push_gset4:
022B 92DA ST R13,-Y
022C 92CA ST R12,-Y
push_gset3:
022D 92BA ST R11,-Y
022E 92AA ST R10,-Y
push_gset2:
022F 937A ST R23,-Y
0230 936A ST R22,-Y
push_gset1:
0231 935A ST R21,-Y
0232 934A ST R20,-Y
0233 9508 RET
pop_gset1:
0234 E0E1 LDI R30,1
pop:
0235 9149 LD R20,Y+
0236 9159 LD R21,Y+
0237 FDE0 SBRC R30,0
0238 9508 RET
0239 9169 LD R22,Y+
023A 9179 LD R23,Y+
023B FDE1 SBRC R30,1
023C 9508 RET
023D 90A9 LD R10,Y+
023E 90B9 LD R11,Y+
023F FDE2 SBRC R30,2
0240 9508 RET
0241 90C9 LD R12,Y+
0242 90D9 LD R13,Y+
0243 FDE3 SBRC R30,3
0244 9508 RET
0245 90E9 LD R14,Y+
0246 90F9 LD R15,Y+
0247 9508 RET
lsl8:
0248 2311 TST R17
0249 F019 BEQ 0x024D
024A 0F00 LSL R16
024B 951A DEC R17
024C CFFB RJMP lsl8
024D 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -