📄 ac10-1.lst
字号:
0141 2755 CLR R21
0142 C00B RJMP 0x014E
(0080) {
(0081) for(j=0;j<140;j++);
0143 2766 CLR R22
0144 2777 CLR R23
0145 C002 RJMP 0x0148
0146 5F6F SUBI R22,0xFF
0147 4F7F SBCI R23,0xFF
0148 386C CPI R22,0x8C
0149 E0E0 LDI R30,0
014A 077E CPC R23,R30
014B F3D0 BCS 0x0146
014C 5F4F SUBI R20,0xFF
014D 4F5F SBCI R21,0xFF
014E 1740 CP R20,R16
014F 0751 CPC R21,R17
0150 F390 BCS 0x0143
0151 940E022A CALL pop_gset2
0153 9508 RET
(0082) }
(0083) }
(0084) /***********************/
(0085) void main(void)
(0086) {
(0087) init_devices();
_main:
0154 DF14 RCALL _init_devices
0155 C015 RJMP 0x016B
(0088) while(1)
(0089) {
(0090) if(cnt>100)
0156 E684 LDI R24,0x64
0157 90200060 LDS R2,cnt
0159 1582 CP R24,R2
015A F468 BCC 0x0168
(0091) {
(0092) adc_val=ADC_Convert();
015B DFAD RCALL _ADC_Convert
015C 93100065 STS adc_val+1,R17
015E 93000064 STS adc_val,R16
(0093) dis_val=conv(adc_val);
0160 DFB3 RCALL _conv
0161 93100063 STS dis_val+1,R17
0163 93000062 STS dis_val,R16
(0094) cnt=0;
0165 2422 CLR R2
0166 92200060 STS cnt,R2
(0095) }
(0096) delay(10);
FILE: <library>
0168 E00A LDI R16,0xA
0169 E010 LDI R17,0
016A DFD3 RCALL _delay
016B CFEA RJMP 0x0156
016C 9508 RET
mod16u:
016D 9468 BSET 6
016E C001 RJMP xdiv16u
div16u:
016F 94E8 BCLR 6
xdiv16u:
0170 92EA ST R14,-Y
0171 92FA ST R15,-Y
0172 938A ST R24,-Y
0173 24EE CLR R14
0174 24FF CLR R15
0175 E180 LDI R24,0x10
0176 0F00 LSL R16
0177 1F11 ROL R17
0178 1CEE ROL R14
0179 1CFF ROL R15
017A 16E2 CP R14,R18
017B 06F3 CPC R15,R19
017C F018 BCS 0x0180
017D 1AE2 SUB R14,R18
017E 0AF3 SBC R15,R19
017F 9503 INC R16
0180 958A DEC R24
0181 F7A1 BNE 0x0176
0182 F416 BRTC 0x0185
0183 2D0E MOV R16,R14
0184 2D1F MOV R17,R15
0185 9189 LD R24,Y+
0186 90F9 LD R15,Y+
0187 90E9 LD R14,Y+
0188 9508 RET
div32u:
0189 94E8 BCLR 6
018A C001 RJMP 0x018C
mod32u:
018B 9468 BSET 6
018C D02F RCALL long_div_prolog
018D 24CC CLR R12
018E C008 RJMP 0x0197
div32s:
018F 94E8 BCLR 6
0190 C001 RJMP 0x0192
mod32s:
0191 9468 BSET 6
0192 D029 RCALL long_div_prolog
0193 FD37 SBRC R19,7
0194 D053 RCALL neg_R16_R19
0195 FDB7 SBRC R27,7
0196 D05A RCALL neg_R24_R27
0197 2477 CLR R7
0198 2488 CLR R8
0199 2499 CLR R9
019A 24AA CLR R10
019B 24BB CLR R11
019C D041 RCALL tst_R16_R19
019D F0C1 BEQ 0x01B6
019E D044 RCALL tst_R24_R27
019F F0B1 BEQ 0x01B6
01A0 E2E8 LDI R30,0x28
01A1 0F00 LSL R16
01A2 1F11 ROL R17
01A3 1F22 ROL R18
01A4 1F33 ROL R19
01A5 1C77 ROL R7
01A6 1C88 ROL R8
01A7 1C99 ROL R9
01A8 1CAA ROL R10
01A9 1CBB ROL R11
01AA 1688 CP R8,R24
01AB 0699 CPC R9,R25
01AC 06AA CPC R10,R26
01AD 06BB CPC R11,R27
01AE F028 BCS 0x01B4
01AF 1A88 SUB R8,R24
01B0 0A99 SBC R9,R25
01B1 0AAA SBC R10,R26
01B2 0ABB SBC R11,R27
01B3 9503 INC R16
01B4 95EA DEC R30
01B5 F759 BNE 0x01A1
01B6 F426 BRTC 0x01BB
01B7 2D08 MOV R16,R8
01B8 2D19 MOV R17,R9
01B9 2D2A MOV R18,R10
01BA 2D3B MOV R19,R11
01BB C013 RJMP long_div_epilog
long_div_prolog:
01BC 927A ST R7,-Y
01BD 928A ST R8,-Y
01BE 929A ST R9,-Y
01BF 92AA ST R10,-Y
01C0 92BA ST R11,-Y
01C1 92CA ST R12,-Y
01C2 93EA ST R30,-Y
01C3 938A ST R24,-Y
01C4 939A ST R25,-Y
01C5 93AA ST R26,-Y
01C6 93BA ST R27,-Y
01C7 858B LDD R24,Y+11
01C8 859C LDD R25,Y+12
01C9 85AD LDD R26,Y+13
01CA 85BE LDD R27,Y+14
01CB 2EC3 MOV R12,R19
01CC F00E BRTS 0x01CE
01CD 26CB EOR R12,R27
01CE 9508 RET
long_div_epilog:
01CF FCC7 SBRC R12,7
01D0 D017 RCALL neg_R16_R19
01D1 91B9 LD R27,Y+
01D2 91A9 LD R26,Y+
01D3 9199 LD R25,Y+
01D4 9189 LD R24,Y+
01D5 91E9 LD R30,Y+
01D6 90C9 LD R12,Y+
01D7 90B9 LD R11,Y+
01D8 90A9 LD R10,Y+
01D9 9099 LD R9,Y+
01DA 9089 LD R8,Y+
01DB 9079 LD R7,Y+
01DC 9624 ADIW R28,4
01DD 9508 RET
tst_R16_R19:
01DE 2FE0 MOV R30,R16
01DF 2BE1 OR R30,R17
01E0 2BE2 OR R30,R18
01E1 2BE3 OR R30,R19
01E2 9508 RET
tst_R24_R27:
01E3 2FE8 MOV R30,R24
01E4 2BE9 OR R30,R25
01E5 2BEA OR R30,R26
01E6 2BEB OR R30,R27
01E7 9508 RET
neg_R16_R19:
01E8 9500 COM R16
01E9 9510 COM R17
01EA 9520 COM R18
01EB 9530 COM R19
01EC 5F0F SUBI R16,0xFF
01ED 4F1F SBCI R17,0xFF
01EE 4F2F SBCI R18,0xFF
01EF 4F3F SBCI R19,0xFF
01F0 9508 RET
neg_R24_R27:
01F1 9580 COM R24
01F2 9590 COM R25
01F3 95A0 COM R26
01F4 95B0 COM R27
01F5 5F8F SUBI R24,0xFF
01F6 4F9F SBCI R25,0xFF
01F7 4FAF SBCI R26,0xFF
01F8 4FBF SBCI R27,0xFF
01F9 9508 RET
empy32s:
empy32u:
01FA 940E024F CALL long_prolog
01FC 927F PUSH R7
01FD 940E0268 CALL tstzero1
01FF F139 BEQ 0x0227
0200 2477 CLR R7
0201 940E026E CALL tstzero2
0203 F419 BNE 0x0207
0204 018C MOVW R16,R24
0205 019D MOVW R18,R26
0206 C020 RJMP 0x0227
0207 9F08 MUL R16,R24
0208 2CB0 MOV R11,R0
0209 2CA1 MOV R10,R1
020A 9F28 MUL R18,R24
020B 2C90 MOV R9,R0
020C 2C81 MOV R8,R1
020D 9F18 MUL R17,R24
020E 0CA0 ADD R10,R0
020F 1C91 ADC R9,R1
0210 1C87 ADC R8,R7
0211 9F09 MUL R16,R25
0212 0CA0 ADD R10,R0
0213 1C91 ADC R9,R1
0214 1C87 ADC R8,R7
0215 9F19 MUL R17,R25
0216 0C90 ADD R9,R0
0217 1C81 ADC R8,R1
0218 9F0A MUL R16,R26
0219 0C90 ADD R9,R0
021A 1C81 ADC R8,R1
021B 9F38 MUL R19,R24
021C 0C80 ADD R8,R0
021D 9F29 MUL R18,R25
021E 0C80 ADD R8,R0
021F 9F1A MUL R17,R26
0220 0C80 ADD R8,R0
0221 9F0B MUL R16,R27
0222 0C80 ADD R8,R0
0223 2D0B MOV R16,R11
0224 2D1A MOV R17,R10
0225 2D29 MOV R18,R9
0226 2D38 MOV R19,R8
0227 907F POP R7
0228 940C025D JMP long_epilog
pop_gset2:
022A E0E2 LDI R30,2
022B 940C023C JMP pop
pop_gset3:
022D E0E4 LDI R30,4
022E 940C023C JMP pop
push_gset5:
0230 92FA ST R15,-Y
0231 92EA ST R14,-Y
push_gset4:
0232 92DA ST R13,-Y
0233 92CA ST R12,-Y
push_gset3:
0234 92BA ST R11,-Y
0235 92AA ST R10,-Y
push_gset2:
0236 937A ST R23,-Y
0237 936A ST R22,-Y
push_gset1:
0238 935A ST R21,-Y
0239 934A ST R20,-Y
023A 9508 RET
pop_gset1:
023B E0E1 LDI R30,1
pop:
023C 9149 LD R20,Y+
023D 9159 LD R21,Y+
023E FDE0 SBRC R30,0
023F 9508 RET
0240 9169 LD R22,Y+
0241 9179 LD R23,Y+
0242 FDE1 SBRC R30,1
0243 9508 RET
0244 90A9 LD R10,Y+
0245 90B9 LD R11,Y+
0246 FDE2 SBRC R30,2
0247 9508 RET
0248 90C9 LD R12,Y+
0249 90D9 LD R13,Y+
024A FDE3 SBRC R30,3
024B 9508 RET
024C 90E9 LD R14,Y+
024D 90F9 LD R15,Y+
024E 9508 RET
long_prolog:
024F 928A ST R8,-Y
0250 929A ST R9,-Y
0251 92AA ST R10,-Y
0252 92BA ST R11,-Y
0253 93EA ST R30,-Y
0254 938A ST R24,-Y
0255 939A ST R25,-Y
0256 93AA ST R26,-Y
0257 93BA ST R27,-Y
0258 8589 LDD R24,Y+9
0259 859A LDD R25,Y+10
025A 85AB LDD R26,Y+11
025B 85BC LDD R27,Y+12
025C 9508 RET
long_epilog:
025D 91B9 LD R27,Y+
025E 91A9 LD R26,Y+
025F 9199 LD R25,Y+
0260 9189 LD R24,Y+
0261 91E9 LD R30,Y+
0262 90B9 LD R11,Y+
0263 90A9 LD R10,Y+
0264 9099 LD R9,Y+
0265 9089 LD R8,Y+
0266 9624 ADIW R28,4
0267 9508 RET
tstzero1:
0268 27EE CLR R30
0269 2BE0 OR R30,R16
026A 2BE1 OR R30,R17
026B 2BE2 OR R30,R18
026C 2BE3 OR R30,R19
026D 9508 RET
tstzero2:
026E 27EE CLR R30
026F 2BE8 OR R30,R24
0270 2BE9 OR R30,R25
0271 2BEA OR R30,R26
0272 2BEB OR R30,R27
0273 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -