📄 zong.lst
字号:
data --> R20
015B 940E0269 CALL push_gset1
015D 01A8 MOVW R20,R16
015E 9724 SBIW R28,4
(0195)
(0196)
(0197)
(0198)
(0199)
(0200)
(0201)
(0202)
(0203)
(0204)
(0205)
(0206)
(0207)
(0208)
(0209)
(0210)
(0211) //external interupt on INT0
(0212) }
(0213)
(0214) void data_display(unsigned int data)
(0215) {
(0216) unsigned char temp[4],i;
(0217) temp[0]=data/1000;
015F EE28 LDI R18,0xE8
0160 E033 LDI R19,3
0161 018A MOVW R16,R20
0162 940E01A3 CALL div16u
0164 8308 STD Y+0,R16
(0218) temp[1]=(data/100)%10;
0165 E624 LDI R18,0x64
0166 E030 LDI R19,0
0167 018A MOVW R16,R20
0168 940E01A3 CALL div16u
016A E02A LDI R18,0xA
016B E030 LDI R19,0
016C 940E01A1 CALL mod16u
016E 8309 STD Y+1,R16
(0219) temp[2]=(data/10)%10;
016F E02A LDI R18,0xA
0170 E030 LDI R19,0
0171 018A MOVW R16,R20
0172 940E01A3 CALL div16u
0174 E02A LDI R18,0xA
0175 E030 LDI R19,0
0176 940E01A1 CALL mod16u
0178 830A STD Y+2,R16
(0220) temp[3]=data%10;
0179 E02A LDI R18,0xA
017A E030 LDI R19,0
017B 018A MOVW R16,R20
017C 940E01A1 CALL mod16u
017E 830B STD Y+3,R16
(0221) for(i=0;i<4;i++)
017F 2744 CLR R20
0180 C00B RJMP 0x018C
(0222) {
(0223) usart_tx(temp[i]);
0181 01CE MOVW R24,R28
0182 2FE4 MOV R30,R20
0183 27FF CLR R31
0184 0FE8 ADD R30,R24
0185 1FF9 ADC R31,R25
0186 8100 LDD R16,Z+0
0187 DF2B RCALL _usart_tx
(0224) delay_nms(1);
0188 E001 LDI R16,1
0189 E010 LDI R17,0
018A DECB RCALL _delay_nms
018B 9543 INC R20
018C 3044 CPI R20,4
018D F398 BCS 0x0181
018E 9624 ADIW R28,4
018F 940E026C CALL pop_gset1
0191 9508 RET
(0225) }
(0226) }
(0227)
(0228) //call this routine to initialize all peripherals
(0229) void init_devices(void)
(0230) {
(0231) //stop errant interrupts until set up
(0232) CLI(); //disable all interrupts
_init_devices:
0192 94F8 BCLR 7
(0233) port_init();
0193 DECF RCALL _port_init
(0234) //uart0_init();
(0235) timer0_125Kinit();
0194 DEDA RCALL _timer0_125Kinit
(0236) timer2_250init();
0195 DEE4 RCALL _timer2_250init
(0237) uart0_init();
0196 DF11 RCALL _uart0_init
(0238) timer1_init();
0197 DEED RCALL _timer1_init
(0239) int0_init();
0198 DEF6 RCALL _int0_init
(0240)
(0241) //MCUCR = 0x03;
(0242) //GICR = 0x40;
(0243) //TIMSK = 0x00; //timer interrupt sources
(0244) SEI(); //re-enable interrupts
0199 9478 BSET 7
019A 9508 RET
(0245) //all peripherals are now initialized
(0246) }
(0247)
(0248) void main(void)
(0249) {
(0250) CLI();
_main:
019B 94F8 BCLR 7
(0251) port_init();
019C DEC6 RCALL _port_init
(0252) init_devices();
019D DFF4 RCALL _init_devices
(0253) //T0_250K();
(0254) //INT0_INIT();
(0255) //T1_INIT();
(0256) SEI();
019E 9478 BSET 7
(0257) //PORTB|=(1<<0);//开始进行ad采样,只采一次
(0258) while(1)
FILE: <library>
019F CFFF RJMP 0x019F
01A0 9508 RET
mod16u:
01A1 9468 BSET 6
01A2 C001 RJMP xdiv16u
div16u:
01A3 94E8 BCLR 6
xdiv16u:
01A4 92EA ST R14,-Y
01A5 92FA ST R15,-Y
01A6 938A ST R24,-Y
01A7 24EE CLR R14
01A8 24FF CLR R15
01A9 E180 LDI R24,0x10
01AA 0F00 LSL R16
01AB 1F11 ROL R17
01AC 1CEE ROL R14
01AD 1CFF ROL R15
01AE 16E2 CP R14,R18
01AF 06F3 CPC R15,R19
01B0 F018 BCS 0x01B4
01B1 1AE2 SUB R14,R18
01B2 0AF3 SBC R15,R19
01B3 9503 INC R16
01B4 958A DEC R24
01B5 F7A1 BNE 0x01AA
01B6 F416 BRTC 0x01B9
01B7 2D0E MOV R16,R14
01B8 2D1F MOV R17,R15
01B9 9189 LD R24,Y+
01BA 90F9 LD R15,Y+
01BB 90E9 LD R14,Y+
01BC 9508 RET
div32u:
01BD 94E8 BCLR 6
01BE C001 RJMP 0x01C0
mod32u:
01BF 9468 BSET 6
01C0 D02F RCALL long_div_prolog
01C1 24CC CLR R12
01C2 C008 RJMP 0x01CB
div32s:
01C3 94E8 BCLR 6
01C4 C001 RJMP 0x01C6
mod32s:
01C5 9468 BSET 6
01C6 D029 RCALL long_div_prolog
01C7 FD37 SBRC R19,7
01C8 D053 RCALL neg_R16_R19
01C9 FDB7 SBRC R27,7
01CA D05A RCALL neg_R24_R27
01CB 2477 CLR R7
01CC 2488 CLR R8
01CD 2499 CLR R9
01CE 24AA CLR R10
01CF 24BB CLR R11
01D0 D041 RCALL tst_R16_R19
01D1 F0C1 BEQ 0x01EA
01D2 D044 RCALL tst_R24_R27
01D3 F0B1 BEQ 0x01EA
01D4 E2E8 LDI R30,0x28
01D5 0F00 LSL R16
01D6 1F11 ROL R17
01D7 1F22 ROL R18
01D8 1F33 ROL R19
01D9 1C77 ROL R7
01DA 1C88 ROL R8
01DB 1C99 ROL R9
01DC 1CAA ROL R10
01DD 1CBB ROL R11
01DE 1688 CP R8,R24
01DF 0699 CPC R9,R25
01E0 06AA CPC R10,R26
01E1 06BB CPC R11,R27
01E2 F028 BCS 0x01E8
01E3 1A88 SUB R8,R24
01E4 0A99 SBC R9,R25
01E5 0AAA SBC R10,R26
01E6 0ABB SBC R11,R27
01E7 9503 INC R16
01E8 95EA DEC R30
01E9 F759 BNE 0x01D5
01EA F426 BRTC 0x01EF
01EB 2D08 MOV R16,R8
01EC 2D19 MOV R17,R9
01ED 2D2A MOV R18,R10
01EE 2D3B MOV R19,R11
01EF C013 RJMP long_div_epilog
long_div_prolog:
01F0 927A ST R7,-Y
01F1 928A ST R8,-Y
01F2 929A ST R9,-Y
01F3 92AA ST R10,-Y
01F4 92BA ST R11,-Y
01F5 92CA ST R12,-Y
01F6 93EA ST R30,-Y
01F7 938A ST R24,-Y
01F8 939A ST R25,-Y
01F9 93AA ST R26,-Y
01FA 93BA ST R27,-Y
01FB 858B LDD R24,Y+11
01FC 859C LDD R25,Y+12
01FD 85AD LDD R26,Y+13
01FE 85BE LDD R27,Y+14
01FF 2EC3 MOV R12,R19
0200 F00E BRTS 0x0202
0201 26CB EOR R12,R27
0202 9508 RET
long_div_epilog:
0203 FCC7 SBRC R12,7
0204 D017 RCALL neg_R16_R19
0205 91B9 LD R27,Y+
0206 91A9 LD R26,Y+
0207 9199 LD R25,Y+
0208 9189 LD R24,Y+
0209 91E9 LD R30,Y+
020A 90C9 LD R12,Y+
020B 90B9 LD R11,Y+
020C 90A9 LD R10,Y+
020D 9099 LD R9,Y+
020E 9089 LD R8,Y+
020F 9079 LD R7,Y+
0210 9624 ADIW R28,4
0211 9508 RET
tst_R16_R19:
0212 2FE0 MOV R30,R16
0213 2BE1 OR R30,R17
0214 2BE2 OR R30,R18
0215 2BE3 OR R30,R19
0216 9508 RET
tst_R24_R27:
0217 2FE8 MOV R30,R24
0218 2BE9 OR R30,R25
0219 2BEA OR R30,R26
021A 2BEB OR R30,R27
021B 9508 RET
neg_R16_R19:
021C 9500 COM R16
021D 9510 COM R17
021E 9520 COM R18
021F 9530 COM R19
0220 5F0F SUBI R16,0xFF
0221 4F1F SBCI R17,0xFF
0222 4F2F SBCI R18,0xFF
0223 4F3F SBCI R19,0xFF
0224 9508 RET
neg_R24_R27:
0225 9580 COM R24
0226 9590 COM R25
0227 95A0 COM R26
0228 95B0 COM R27
0229 5F8F SUBI R24,0xFF
022A 4F9F SBCI R25,0xFF
022B 4FAF SBCI R26,0xFF
022C 4FBF SBCI R27,0xFF
022D 9508 RET
empy32u:
empy32s:
022E 940E0280 CALL long_prolog
0230 927F PUSH R7
0231 940E0299 CALL tstzero1
0233 F139 BEQ 0x025B
0234 2477 CLR R7
0235 940E029F CALL tstzero2
0237 F419 BNE 0x023B
0238 018C MOVW R16,R24
0239 019D MOVW R18,R26
023A C020 RJMP 0x025B
023B 9F08 MUL R16,R24
023C 2CB0 MOV R11,R0
023D 2CA1 MOV R10,R1
023E 9F28 MUL R18,R24
023F 2C90 MOV R9,R0
0240 2C81 MOV R8,R1
0241 9F18 MUL R17,R24
0242 0CA0 ADD R10,R0
0243 1C91 ADC R9,R1
0244 1C87 ADC R8,R7
0245 9F09 MUL R16,R25
0246 0CA0 ADD R10,R0
0247 1C91 ADC R9,R1
0248 1C87 ADC R8,R7
0249 9F19 MUL R17,R25
024A 0C90 ADD R9,R0
024B 1C81 ADC R8,R1
024C 9F0A MUL R16,R26
024D 0C90 ADD R9,R0
024E 1C81 ADC R8,R1
024F 9F38 MUL R19,R24
0250 0C80 ADD R8,R0
0251 9F29 MUL R18,R25
0252 0C80 ADD R8,R0
0253 9F1A MUL R17,R26
0254 0C80 ADD R8,R0
0255 9F0B MUL R16,R27
0256 0C80 ADD R8,R0
0257 2D0B MOV R16,R11
0258 2D1A MOV R17,R10
0259 2D29 MOV R18,R9
025A 2D38 MOV R19,R8
025B 907F POP R7
025C 940C028E JMP long_epilog
pop_gset2:
025E E0E2 LDI R30,2
025F 940C026D JMP pop
push_gset5:
0261 92FA ST R15,-Y
0262 92EA ST R14,-Y
push_gset4:
0263 92DA ST R13,-Y
0264 92CA ST R12,-Y
push_gset3:
0265 92BA ST R11,-Y
0266 92AA ST R10,-Y
push_gset2:
0267 937A ST R23,-Y
0268 936A ST R22,-Y
push_gset1:
0269 935A ST R21,-Y
026A 934A ST R20,-Y
026B 9508 RET
pop_gset1:
026C E0E1 LDI R30,1
pop:
026D 9149 LD R20,Y+
026E 9159 LD R21,Y+
026F FDE0 SBRC R30,0
0270 9508 RET
0271 9169 LD R22,Y+
0272 9179 LD R23,Y+
0273 FDE1 SBRC R30,1
0274 9508 RET
0275 90A9 LD R10,Y+
0276 90B9 LD R11,Y+
0277 FDE2 SBRC R30,2
0278 9508 RET
0279 90C9 LD R12,Y+
027A 90D9 LD R13,Y+
027B FDE3 SBRC R30,3
027C 9508 RET
027D 90E9 LD R14,Y+
027E 90F9 LD R15,Y+
027F 9508 RET
long_prolog:
0280 928A ST R8,-Y
0281 929A ST R9,-Y
0282 92AA ST R10,-Y
0283 92BA ST R11,-Y
0284 93EA ST R30,-Y
0285 938A ST R24,-Y
0286 939A ST R25,-Y
0287 93AA ST R26,-Y
0288 93BA ST R27,-Y
0289 8589 LDD R24,Y+9
028A 859A LDD R25,Y+10
028B 85AB LDD R26,Y+11
028C 85BC LDD R27,Y+12
028D 9508 RET
long_epilog:
028E 91B9 LD R27,Y+
028F 91A9 LD R26,Y+
0290 9199 LD R25,Y+
0291 9189 LD R24,Y+
0292 91E9 LD R30,Y+
0293 90B9 LD R11,Y+
0294 90A9 LD R10,Y+
0295 9099 LD R9,Y+
0296 9089 LD R8,Y+
0297 9624 ADIW R28,4
0298 9508 RET
tstzero1:
0299 27EE CLR R30
029A 2BE0 OR R30,R16
029B 2BE1 OR R30,R17
029C 2BE2 OR R30,R18
029D 2BE3 OR R30,R19
029E 9508 RET
tstzero2:
029F 27EE CLR R30
02A0 2BE8 OR R30,R24
02A1 2BE9 OR R30,R25
02A2 2BEA OR R30,R26
02A3 2BEB OR R30,R27
02A4 9508 RET
push_lset:
02A5 93FA ST R31,-Y
02A6 93EA ST R30,-Y
02A7 93BA ST R27,-Y
02A8 93AA ST R26,-Y
02A9 939A ST R25,-Y
02AA 938A ST R24,-Y
02AB 933A ST R19,-Y
02AC 932A ST R18,-Y
02AD 931A ST R17,-Y
02AE 930A ST R16,-Y
02AF 929A ST R9,-Y
02B0 928A ST R8,-Y
02B1 927A ST R7,-Y
02B2 926A ST R6,-Y
02B3 925A ST R5,-Y
02B4 924A ST R4,-Y
02B5 923A ST R3,-Y
02B6 922A ST R2,-Y
02B7 921A ST R1,-Y
02B8 920A ST R0,-Y
02B9 B60F IN R0,0x3F
02BA 920A ST R0,-Y
02BB 9508 RET
pop_lset:
02BC 9009 LD R0,Y+
02BD BE0F OUT 0x3F,R0
02BE 9009 LD R0,Y+
02BF 9019 LD R1,Y+
02C0 9029 LD R2,Y+
02C1 9039 LD R3,Y+
02C2 9049 LD R4,Y+
02C3 9059 LD R5,Y+
02C4 9069 LD R6,Y+
02C5 9079 LD R7,Y+
02C6 9089 LD R8,Y+
02C7 9099 LD R9,Y+
02C8 9109 LD R16,Y+
02C9 9119 LD R17,Y+
02CA 9129 LD R18,Y+
02CB 9139 LD R19,Y+
02CC 9189 LD R24,Y+
02CD 9199 LD R25,Y+
02CE 91A9 LD R26,Y+
02CF 91B9 LD R27,Y+
02D0 91E9 LD R30,Y+
02D1 91F9 LD R31,Y+
02D2 9508 RET
lsr32:
02D3 920F PUSH R0
02D4 9009 LD R0,Y+
02D5 2000 TST R0
02D6 F031 BEQ 0x02DD
02D7 9536 LSR R19
02D8 9527 ROR R18
02D9 9517 ROR R17
02DA 9507 ROR R16
02DB 940A DEC R0
02DC CFF8 RJMP 0x02D5
02DD 900F POP R0
02DE 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -