📄 adc.lst
字号:
013A 0791 CPC R25,R17
013B F3CC BLT 0x0135
013C 9508 RET
_delay_ms:
time --> R20
013D D0F7 RCALL push_gset1
013E 01A8 MOVW R20,R16
(0013) }
(0014) /* 毫秒级延时程序 */
(0015) void delay_ms(unsigned int time)
(0016) {
013F C005 RJMP 0x0145
(0017) while(time!=0)
(0018) {
(0019) delay_us(1000);
0140 EE08 LDI R16,0xE8
0141 E013 LDI R17,3
0142 DFF2 RCALL _delay_us
(0020) time--;
0143 5041 SUBI R20,1
0144 4050 SBCI R21,0
0145 3040 CPI R20,0
0146 0745 CPC R20,R21
0147 F7C1 BNE 0x0140
0148 D0EF RCALL pop_gset1
0149 9508 RET
_display:
i --> R20
014A D0EA RCALL push_gset1
(0021) }
(0022) }
(0023) void display(void)
(0024) {
(0025) unsigned char i;
(0026) DDRB=0xff;
014B EF8F LDI R24,0xFF
014C B984 OUT 0x04,R24
(0027) PORTB=0xff;
014D B985 OUT 0x05,R24
(0028) DDRD|=0xf0;
014E B18A IN R24,0x0A
014F 6F80 ORI R24,0xF0
0150 B98A OUT 0x0A,R24
(0029) PORTD|=0xf0;
0151 B18B IN R24,0x0B
0152 6F80 ORI R24,0xF0
0153 B98B OUT 0x0B,R24
(0030) for(i=0;i<4;i++)
0154 2744 CLR R20
0155 C018 RJMP 0x016E
(0031) {
(0032) PORTB=led_buff[i];
0156 E080 LDI R24,0
0157 E091 LDI R25,1
0158 2FE4 MOV R30,R20
0159 27FF CLR R31
015A 0FE8 ADD R30,R24
015B 1FF9 ADC R31,R25
015C 8020 LDD R2,Z+0
015D B825 OUT 0x05,R2
(0033) PORTD&=~(1<<(i+4));
015E 2F14 MOV R17,R20
015F 5F1C SUBI R17,0xFC
0160 E001 LDI R16,1
0161 D10F RCALL lsl8
0162 2E20 MOV R2,R16
0163 9420 COM R2
0164 B03B IN R3,0x0B
0165 2032 AND R3,R2
0166 B83B OUT 0x0B,R3
(0034) delay_ms(1);
0167 E001 LDI R16,1
0168 E010 LDI R17,0
0169 DFD3 RCALL _delay_ms
(0035) PORTD|=0xf0;
FILE: <library>
016A B18B IN R24,0x0B
016B 6F80 ORI R24,0xF0
016C B98B OUT 0x0B,R24
016D 9543 INC R20
016E 3044 CPI R20,4
016F F330 BCS 0x0156
0170 D0C7 RCALL pop_gset1
0171 9508 RET
mod16u:
0172 9468 BSET 6
0173 C001 RJMP xdiv16u
div16u:
0174 94E8 BCLR 6
xdiv16u:
0175 92EA ST R14,-Y
0176 92FA ST R15,-Y
0177 938A ST R24,-Y
0178 24EE CLR R14
0179 24FF CLR R15
017A E180 LDI R24,0x10
017B 0F00 LSL R16
017C 1F11 ROL R17
017D 1CEE ROL R14
017E 1CFF ROL R15
017F 16E2 CP R14,R18
0180 06F3 CPC R15,R19
0181 F018 BCS 0x0185
0182 1AE2 SUB R14,R18
0183 0AF3 SBC R15,R19
0184 9503 INC R16
0185 958A DEC R24
0186 F7A1 BNE 0x017B
0187 F416 BRTC 0x018A
0188 2D0E MOV R16,R14
0189 2D1F MOV R17,R15
018A 9189 LD R24,Y+
018B 90F9 LD R15,Y+
018C 90E9 LD R14,Y+
018D 9508 RET
div32u:
018E 94E8 BCLR 6
018F C001 RJMP 0x0191
mod32u:
0190 9468 BSET 6
0191 D02F RCALL long_div_prolog
0192 24CC CLR R12
0193 C008 RJMP 0x019C
div32s:
0194 94E8 BCLR 6
0195 C001 RJMP 0x0197
mod32s:
0196 9468 BSET 6
0197 D029 RCALL long_div_prolog
0198 FD37 SBRC R19,7
0199 D053 RCALL neg_R16_R19
019A FDB7 SBRC R27,7
019B D05A RCALL neg_R24_R27
019C 2477 CLR R7
019D 2488 CLR R8
019E 2499 CLR R9
019F 24AA CLR R10
01A0 24BB CLR R11
01A1 D041 RCALL tst_R16_R19
01A2 F0C1 BEQ 0x01BB
01A3 D044 RCALL tst_R24_R27
01A4 F0B1 BEQ 0x01BB
01A5 E2E8 LDI R30,0x28
01A6 0F00 LSL R16
01A7 1F11 ROL R17
01A8 1F22 ROL R18
01A9 1F33 ROL R19
01AA 1C77 ROL R7
01AB 1C88 ROL R8
01AC 1C99 ROL R9
01AD 1CAA ROL R10
01AE 1CBB ROL R11
01AF 1688 CP R8,R24
01B0 0699 CPC R9,R25
01B1 06AA CPC R10,R26
01B2 06BB CPC R11,R27
01B3 F028 BCS 0x01B9
01B4 1A88 SUB R8,R24
01B5 0A99 SBC R9,R25
01B6 0AAA SBC R10,R26
01B7 0ABB SBC R11,R27
01B8 9503 INC R16
01B9 95EA DEC R30
01BA F759 BNE 0x01A6
01BB F426 BRTC 0x01C0
01BC 2D08 MOV R16,R8
01BD 2D19 MOV R17,R9
01BE 2D2A MOV R18,R10
01BF 2D3B MOV R19,R11
01C0 C013 RJMP long_div_epilog
long_div_prolog:
01C1 927A ST R7,-Y
01C2 928A ST R8,-Y
01C3 929A ST R9,-Y
01C4 92AA ST R10,-Y
01C5 92BA ST R11,-Y
01C6 92CA ST R12,-Y
01C7 93EA ST R30,-Y
01C8 938A ST R24,-Y
01C9 939A ST R25,-Y
01CA 93AA ST R26,-Y
01CB 93BA ST R27,-Y
01CC 858B LDD R24,Y+11
01CD 859C LDD R25,Y+12
01CE 85AD LDD R26,Y+13
01CF 85BE LDD R27,Y+14
01D0 2EC3 MOV R12,R19
01D1 F00E BRTS 0x01D3
01D2 26CB EOR R12,R27
01D3 9508 RET
long_div_epilog:
01D4 FCC7 SBRC R12,7
01D5 D017 RCALL neg_R16_R19
01D6 91B9 LD R27,Y+
01D7 91A9 LD R26,Y+
01D8 9199 LD R25,Y+
01D9 9189 LD R24,Y+
01DA 91E9 LD R30,Y+
01DB 90C9 LD R12,Y+
01DC 90B9 LD R11,Y+
01DD 90A9 LD R10,Y+
01DE 9099 LD R9,Y+
01DF 9089 LD R8,Y+
01E0 9079 LD R7,Y+
01E1 9624 ADIW R28,4
01E2 9508 RET
tst_R16_R19:
01E3 2FE0 MOV R30,R16
01E4 2BE1 OR R30,R17
01E5 2BE2 OR R30,R18
01E6 2BE3 OR R30,R19
01E7 9508 RET
tst_R24_R27:
01E8 2FE8 MOV R30,R24
01E9 2BE9 OR R30,R25
01EA 2BEA OR R30,R26
01EB 2BEB OR R30,R27
01EC 9508 RET
neg_R16_R19:
01ED 9500 COM R16
01EE 9510 COM R17
01EF 9520 COM R18
01F0 9530 COM R19
01F1 5F0F SUBI R16,0xFF
01F2 4F1F SBCI R17,0xFF
01F3 4F2F SBCI R18,0xFF
01F4 4F3F SBCI R19,0xFF
01F5 9508 RET
neg_R24_R27:
01F6 9580 COM R24
01F7 9590 COM R25
01F8 95A0 COM R26
01F9 95B0 COM R27
01FA 5F8F SUBI R24,0xFF
01FB 4F9F SBCI R25,0xFF
01FC 4FAF SBCI R26,0xFF
01FD 4FBF SBCI R27,0xFF
01FE 9508 RET
empy32s:
empy32u:
01FF D04C RCALL long_prolog
0200 927F PUSH R7
0201 D063 RCALL tstzero1
0202 F131 BEQ 0x0229
0203 2477 CLR R7
0204 D066 RCALL tstzero2
0205 F419 BNE 0x0209
0206 018C MOVW R16,R24
0207 019D MOVW R18,R26
0208 C020 RJMP 0x0229
0209 9F08 MUL R16,R24
020A 2CB0 MOV R11,R0
020B 2CA1 MOV R10,R1
020C 9F28 MUL R18,R24
020D 2C90 MOV R9,R0
020E 2C81 MOV R8,R1
020F 9F18 MUL R17,R24
0210 0CA0 ADD R10,R0
0211 1C91 ADC R9,R1
0212 1C87 ADC R8,R7
0213 9F09 MUL R16,R25
0214 0CA0 ADD R10,R0
0215 1C91 ADC R9,R1
0216 1C87 ADC R8,R7
0217 9F19 MUL R17,R25
0218 0C90 ADD R9,R0
0219 1C81 ADC R8,R1
021A 9F0A MUL R16,R26
021B 0C90 ADD R9,R0
021C 1C81 ADC R8,R1
021D 9F38 MUL R19,R24
021E 0C80 ADD R8,R0
021F 9F29 MUL R18,R25
0220 0C80 ADD R8,R0
0221 9F1A MUL R17,R26
0222 0C80 ADD R8,R0
0223 9F0B MUL R16,R27
0224 0C80 ADD R8,R0
0225 2D0B MOV R16,R11
0226 2D1A MOV R17,R10
0227 2D29 MOV R18,R9
0228 2D38 MOV R19,R8
0229 907F POP R7
022A C02F RJMP long_epilog
pop_gset4:
022B E0E8 LDI R30,0x8
022C C00C RJMP pop
push_gset5:
022D 92FA ST R15,-Y
022E 92EA ST R14,-Y
push_gset4:
022F 92DA ST R13,-Y
0230 92CA ST R12,-Y
push_gset3:
0231 92BA ST R11,-Y
0232 92AA ST R10,-Y
push_gset2:
0233 937A ST R23,-Y
0234 936A ST R22,-Y
push_gset1:
0235 935A ST R21,-Y
0236 934A ST R20,-Y
0237 9508 RET
pop_gset1:
0238 E0E1 LDI R30,1
pop:
0239 9149 LD R20,Y+
023A 9159 LD R21,Y+
023B FDE0 SBRC R30,0
023C 9508 RET
023D 9169 LD R22,Y+
023E 9179 LD R23,Y+
023F FDE1 SBRC R30,1
0240 9508 RET
0241 90A9 LD R10,Y+
0242 90B9 LD R11,Y+
0243 FDE2 SBRC R30,2
0244 9508 RET
0245 90C9 LD R12,Y+
0246 90D9 LD R13,Y+
0247 FDE3 SBRC R30,3
0248 9508 RET
0249 90E9 LD R14,Y+
024A 90F9 LD R15,Y+
024B 9508 RET
long_prolog:
024C 928A ST R8,-Y
024D 929A ST R9,-Y
024E 92AA ST R10,-Y
024F 92BA ST R11,-Y
0250 93EA ST R30,-Y
0251 938A ST R24,-Y
0252 939A ST R25,-Y
0253 93AA ST R26,-Y
0254 93BA ST R27,-Y
0255 8589 LDD R24,Y+9
0256 859A LDD R25,Y+10
0257 85AB LDD R26,Y+11
0258 85BC LDD R27,Y+12
0259 9508 RET
long_epilog:
025A 91B9 LD R27,Y+
025B 91A9 LD R26,Y+
025C 9199 LD R25,Y+
025D 9189 LD R24,Y+
025E 91E9 LD R30,Y+
025F 90B9 LD R11,Y+
0260 90A9 LD R10,Y+
0261 9099 LD R9,Y+
0262 9089 LD R8,Y+
0263 9624 ADIW R28,4
0264 9508 RET
tstzero1:
0265 27EE CLR R30
0266 2BE0 OR R30,R16
0267 2BE1 OR R30,R17
0268 2BE2 OR R30,R18
0269 2BE3 OR R30,R19
026A 9508 RET
tstzero2:
026B 27EE CLR R30
026C 2BE8 OR R30,R24
026D 2BE9 OR R30,R25
026E 2BEA OR R30,R26
026F 2BEB OR R30,R27
0270 9508 RET
lsl8:
0271 2311 TST R17
0272 F019 BEQ 0x0276
0273 0F00 LSL R16
0274 951A DEC R17
0275 CFFB RJMP lsl8
0276 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -