www.pudn.com > adc-disp.rar > adc-disp.lss


 
adc-disp.elf:     file format elf32-avr 
 
Sections: 
Idx Name          Size      VMA       LMA       File off  Algn 
  0 .text         0000032c  00000000  00000000  00000074  2**1 
                  CONTENTS, ALLOC, LOAD, READONLY, CODE 
  1 .data         00000010  00800060  0000032c  000003a0  2**0 
                  CONTENTS, ALLOC, LOAD, DATA 
  2 .bss          00000014  00800070  0000033c  000003b0  2**0 
                  ALLOC 
  3 .debug_aranges 00000020  00000000  00000000  000003b0  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  4 .debug_pubnames 0000004d  00000000  00000000  000003d0  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  5 .debug_info   000003bf  00000000  00000000  0000041d  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  6 .debug_abbrev 0000018f  00000000  00000000  000007dc  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  7 .debug_line   00000331  00000000  00000000  0000096b  2**0 
                  CONTENTS, READONLY, DEBUGGING 
  8 .debug_frame  00000060  00000000  00000000  00000c9c  2**2 
                  CONTENTS, READONLY, DEBUGGING 
  9 .debug_str    00000131  00000000  00000000  00000cfc  2**0 
                  CONTENTS, READONLY, DEBUGGING 
 10 .debug_loc    000001ad  00000000  00000000  00000e2d  2**0 
                  CONTENTS, READONLY, DEBUGGING 
 11 .debug_ranges 00000120  00000000  00000000  00000fda  2**0 
                  CONTENTS, READONLY, DEBUGGING 
Disassembly of section .text: 
 
00000000 <__vectors>: 
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end> 
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  2c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt> 
 
00000054 <__ctors_end>: 
  54:	11 24       	eor	r1, r1 
  56:	1f be       	out	0x3f, r1	; 63 
  58:	cf e5       	ldi	r28, 0x5F	; 95 
  5a:	d4 e0       	ldi	r29, 0x04	; 4 
  5c:	de bf       	out	0x3e, r29	; 62 
  5e:	cd bf       	out	0x3d, r28	; 61 
 
00000060 <__do_copy_data>: 
  60:	10 e0       	ldi	r17, 0x00	; 0 
  62:	a0 e6       	ldi	r26, 0x60	; 96 
  64:	b0 e0       	ldi	r27, 0x00	; 0 
  66:	ec e2       	ldi	r30, 0x2C	; 44 
  68:	f3 e0       	ldi	r31, 0x03	; 3 
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start> 
 
0000006c <.do_copy_data_loop>: 
  6c:	05 90       	lpm	r0, Z+ 
  6e:	0d 92       	st	X+, r0 
 
00000070 <.do_copy_data_start>: 
  70:	a0 37       	cpi	r26, 0x70	; 112 
  72:	b1 07       	cpc	r27, r17 
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop> 
 
00000076 <__do_clear_bss>: 
  76:	10 e0       	ldi	r17, 0x00	; 0 
  78:	a0 e7       	ldi	r26, 0x70	; 112 
  7a:	b0 e0       	ldi	r27, 0x00	; 0 
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start> 
 
0000007e <.do_clear_bss_loop>: 
  7e:	1d 92       	st	X+, r1 
 
00000080 <.do_clear_bss_start>: 
  80:	a4 38       	cpi	r26, 0x84	; 132 
  82:	b1 07       	cpc	r27, r17 
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop> 
  86:	0e 94 50 01 	call	0x2a0	; 0x2a0 
8a: 0c 94 94 01 jmp 0x328 ; 0x328 <_exit> 0000008e <__bad_interrupt>: 8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> 00000092 : static uint g_aAdValue[8]; //A/D转换缓冲区 static uchar g_aLed[4]; void IoInit(void) { 92: d8 98 cbi 0x1b, 0 ; 27 PORTA&=~_BV(PA0); //初始化pa0 DDRC=0xff; 94: 8f ef ldi r24, 0xFF ; 255 96: 84 bb out 0x14, r24 ; 20 PORTC=0X00; 98: 15 ba out 0x15, r1 ; 21 DDRA=0xf0; 9a: 80 ef ldi r24, 0xF0 ; 240 9c: 8a bb out 0x1a, r24 ; 26 PORTA=0xf0; 9e: 8b bb out 0x1b, r24 ; 27 } a0: 08 95 ret 000000a2 : uint AdcConvert(void) { a2: ff 92 push r15 a4: 0f 93 push r16 a6: 1f 93 push r17 a8: cf 93 push r28 aa: df 93 push r29 uchar i; uint ret; uchar max_id,min_id,max_value,min_value; ADMUX=0xc0;//内部2.56V参考电压,0通道 ac: 80 ec ldi r24, 0xC0 ; 192 ae: 87 b9 out 0x07, r24 ; 7 ADCSRA=_BV(ADEN);//使能ADC,单次转换模式 b0: 80 e8 ldi r24, 0x80 ; 128 b2: 86 b9 out 0x06, r24 ; 6 b4: e0 e7 ldi r30, 0x70 ; 112 b6: f0 e0 ldi r31, 0x00 ; 0 can be achieved. */ void _delay_loop_1(uint8_t __count) { __asm__ volatile ( b8: 40 e5 ldi r20, 0x50 ; 80 //连续转换8次 for(i=0;i<8;i++) { ADCSRA|=_BV(ADSC); ba: 36 9a sbi 0x06, 6 ; 6 bc: 84 2f mov r24, r20 be: 8a 95 dec r24 c0: f1 f7 brne .-4 ; 0xbe _delay_us(60); while(ADCSRA&_BV(ADSC)) c2: 36 99 sbic 0x06, 6 ; 6 c4: fb cf rjmp .-10 ; 0xbc _delay_us(60); ret=ADCL; c6: 84 b1 in r24, 0x04 ; 4 c8: 90 e0 ldi r25, 0x00 ; 0 ret|=(uint)(ADCH<<8); ca: 25 b1 in r18, 0x05 ; 5 g_aAdValue[i]=ret; cc: 32 2f mov r19, r18 ce: 20 e0 ldi r18, 0x00 ; 0 d0: 82 2b or r24, r18 d2: 93 2b or r25, r19 d4: 81 93 st Z+, r24 d6: 91 93 st Z+, r25 ADMUX=0xc0;//内部2.56V参考电压,0通道 ADCSRA=_BV(ADEN);//使能ADC,单次转换模式 //连续转换8次 for(i=0;i<8;i++) d8: 80 e0 ldi r24, 0x00 ; 0 da: e0 38 cpi r30, 0x80 ; 128 dc: f8 07 cpc r31, r24 de: 69 f7 brne .-38 ; 0xba e0: ef 01 movw r28, r30 e2: 2e 97 sbiw r28, 0x0e ; 14 e4: fe 01 movw r30, r28 e6: 20 e0 ldi r18, 0x00 ; 0 e8: 30 e0 ldi r19, 0x00 ; 0 ret|=(uint)(ADCH<<8); g_aAdValue[i]=ret; } ret=0; for(i=1;i<8;i++) ret+=g_aAdValue[i]; ea: 81 91 ld r24, Z+ ec: 91 91 ld r25, Z+ ee: 28 0f add r18, r24 f0: 39 1f adc r19, r25 ret=ADCL; ret|=(uint)(ADCH<<8); g_aAdValue[i]=ret; } ret=0; for(i=1;i<8;i++) f2: 80 e0 ldi r24, 0x00 ; 0 f4: e0 38 cpi r30, 0x80 ; 128 f6: f8 07 cpc r31, r24 f8: c1 f7 brne .-16 ; 0xea ret+=g_aAdValue[i]; //找到最大和最小值索引 ret/=7; fa: c9 01 movw r24, r18 fc: 67 e0 ldi r22, 0x07 ; 7 fe: 70 e0 ldi r23, 0x00 ; 0 100: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 104: ab 01 movw r20, r22 106: 3e 97 sbiw r30, 0x0e ; 14 108: a1 e0 ldi r26, 0x01 ; 1 10a: 11 e0 ldi r17, 0x01 ; 1 10c: b1 e0 ldi r27, 0x01 ; 1 10e: ff 24 eor r15, r15 110: 00 e0 ldi r16, 0x00 ; 0 max_id=min_id=1; max_value=min_value=0; for(i=1;i<8;i++) { if(g_aAdValue[i]>ret) 112: 60 81 ld r22, Z 114: 71 81 ldd r23, Z+1 ; 0x01 116: 46 17 cp r20, r22 118: 57 07 cpc r21, r23 11a: 60 f4 brcc .+24 ; 0x134 { if(g_aAdValue[i]-ret>max_value) 11c: 9b 01 movw r18, r22 11e: 24 1b sub r18, r20 120: 35 0b sbc r19, r21 122: 8f 2d mov r24, r15 124: 90 e0 ldi r25, 0x00 ; 0 126: 82 17 cp r24, r18 128: 93 07 cpc r25, r19 12a: 78 f4 brcc .+30 ; 0x14a { max_value=g_aAdValue[i]-ret; 12c: f6 2e mov r15, r22 12e: f4 1a sub r15, r20 130: 1a 2f mov r17, r26 132: 0b c0 rjmp .+22 ; 0x14a max_id=i; } } else { if(ret-g_aAdValue[i]>min_value) 134: 9a 01 movw r18, r20 136: 26 1b sub r18, r22 138: 37 0b sbc r19, r23 13a: 80 2f mov r24, r16 13c: 90 e0 ldi r25, 0x00 ; 0 13e: 82 17 cp r24, r18 140: 93 07 cpc r25, r19 142: 18 f4 brcc .+6 ; 0x14a { min_value=ret-g_aAdValue[i]; 144: 04 2f mov r16, r20 146: 06 1b sub r16, r22 148: ba 2f mov r27, r26 //找到最大和最小值索引 ret/=7; max_id=min_id=1; max_value=min_value=0; for(i=1;i<8;i++) 14a: af 5f subi r26, 0xFF ; 255 14c: 32 96 adiw r30, 0x02 ; 2 14e: a8 30 cpi r26, 0x08 ; 8 150: 01 f7 brne .-64 ; 0x112 152: 41 e0 ldi r20, 0x01 ; 1 154: 20 e0 ldi r18, 0x00 ; 0 156: 30 e0 ldi r19, 0x00 ; 0 //去掉第一个和最大最小值后的平均值 ret=0; for(i=1;i<8;i++) { if((i!=min_id)&&(i!=max_id)) 158: 4b 17 cp r20, r27 15a: 31 f0 breq .+12 ; 0x168 15c: 41 17 cp r20, r17 15e: 21 f0 breq .+8 ; 0x168 ret+=g_aAdValue[i]; 160: 88 81 ld r24, Y 162: 99 81 ldd r25, Y+1 ; 0x01 164: 28 0f add r18, r24 166: 39 1f adc r19, r25 } } //去掉第一个和最大最小值后的平均值 ret=0; for(i=1;i<8;i++) 168: 4f 5f subi r20, 0xFF ; 255 16a: 22 96 adiw r28, 0x02 ; 2 16c: 48 30 cpi r20, 0x08 ; 8 16e: a1 f7 brne .-24 ; 0x158 { if((i!=min_id)&&(i!=max_id)) ret+=g_aAdValue[i]; } if(min_id!=max_id) 170: b1 17 cp r27, r17 172: 21 f0 breq .+8 ; 0x17c ret/=5; 174: c9 01 movw r24, r18 176: 65 e0 ldi r22, 0x05 ; 5 178: 70 e0 ldi r23, 0x00 ; 0 17a: 03 c0 rjmp .+6 ; 0x182 else ret/=6; 17c: c9 01 movw r24, r18 17e: 66 e0 ldi r22, 0x06 ; 6 180: 70 e0 ldi r23, 0x00 ; 0 182: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> ADCSRA=0;//关闭ADC 186: 16 b8 out 0x06, r1 ; 6 return ret; } 188: cb 01 movw r24, r22 18a: df 91 pop r29 18c: cf 91 pop r28 18e: 1f 91 pop r17 190: 0f 91 pop r16 192: ff 90 pop r15 194: 08 95 ret 00000196 : int Led_disp(void) { 196: 44 e0 ldi r20, 0x04 ; 4 198: 50 e0 ldi r21, 0x00 ; 0 uchar i; for(i=0;i<4;i++) { PORTC=g_aLed[i]; PORTA&=~(1<<(i+4)); 19a: a1 e0 ldi r26, 0x01 ; 1 19c: b0 e0 ldi r27, 0x00 ; 0 milliseconds can be achieved. */ void _delay_loop_2(uint16_t __count) { __asm__ volatile ( 19e: 68 ee ldi r22, 0xE8 ; 232 1a0: 73 e0 ldi r23, 0x03 ; 3 _delay_us(1000); PORTA=0xf0; 1a2: 30 ef ldi r19, 0xF0 ; 240 int Led_disp(void) { uchar i; for(i=0;i<4;i++) { PORTC=g_aLed[i]; 1a4: fa 01 movw r30, r20 1a6: e4 58 subi r30, 0x84 ; 132 1a8: ff 4f sbci r31, 0xFF ; 255 1aa: 80 81 ld r24, Z 1ac: 85 bb out 0x15, r24 ; 21 PORTA&=~(1<<(i+4)); 1ae: 2b b3 in r18, 0x1b ; 27 1b0: cd 01 movw r24, r26 1b2: 04 2e mov r0, r20 1b4: 02 c0 rjmp .+4 ; 0x1ba 1b6: 88 0f add r24, r24 1b8: 99 1f adc r25, r25 1ba: 0a 94 dec r0 1bc: e2 f7 brpl .-8 ; 0x1b6 1be: 80 95 com r24 1c0: 82 23 and r24, r18 1c2: 8b bb out 0x1b, r24 ; 27 1c4: cb 01 movw r24, r22 1c6: 01 97 sbiw r24, 0x01 ; 1 1c8: f1 f7 brne .-4 ; 0x1c6 _delay_us(1000); PORTA=0xf0; 1ca: 3b bb out 0x1b, r19 ; 27 1cc: 4f 5f subi r20, 0xFF ; 255 1ce: 5f 4f sbci r21, 0xFF ; 255 } int Led_disp(void) { uchar i; for(i=0;i<4;i++) 1d0: 48 30 cpi r20, 0x08 ; 8 1d2: 51 05 cpc r21, r1 1d4: 39 f7 brne .-50 ; 0x1a4 PORTA&=~(1<<(i+4)); _delay_us(1000); PORTA=0xf0; } return 0; } 1d6: 80 e0 ldi r24, 0x00 ; 0 1d8: 90 e0 ldi r25, 0x00 ; 0 1da: 08 95 ret 000001dc : int NtoBCD(void) { 1dc: 1f 93 push r17 1de: df 93 push r29 1e0: cf 93 push r28 1e2: cd b7 in r28, 0x3d ; 61 1e4: de b7 in r29, 0x3e ; 62 1e6: 60 97 sbiw r28, 0x10 ; 16 1e8: 0f b6 in r0, 0x3f ; 63 1ea: f8 94 cli 1ec: de bf out 0x3e, r29 ; 62 1ee: 0f be out 0x3f, r0 ; 63 1f0: cd bf out 0x3d, r28 ; 61 uchar g_aDisplayBuf[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; 1f2: de 01 movw r26, r28 1f4: 11 96 adiw r26, 0x01 ; 1 1f6: e0 e6 ldi r30, 0x60 ; 96 1f8: f0 e0 ldi r31, 0x00 ; 0 1fa: 80 e1 ldi r24, 0x10 ; 16 1fc: 01 90 ld r0, Z+ 1fe: 0d 92 st X+, r0 200: 81 50 subi r24, 0x01 ; 1 202: e1 f7 brne .-8 ; 0x1fc uint num; uchar aa,bb,cc; num=AdcConvert()*10/41;//1024对应2.49V 204: 0e 94 51 00 call 0xa2 ; 0xa2 208: 9c 01 movw r18, r24 20a: 53 e0 ldi r21, 0x03 ; 3 20c: 88 0f add r24, r24 20e: 99 1f adc r25, r25 210: 5a 95 dec r21 212: e1 f7 brne .-8 ; 0x20c 214: 22 0f add r18, r18 216: 33 1f adc r19, r19 218: 82 0f add r24, r18 21a: 93 1f adc r25, r19 21c: 69 e2 ldi r22, 0x29 ; 41 21e: 70 e0 ldi r23, 0x00 ; 0 220: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 224: 9b 01 movw r18, r22 aa=num/100; bb=(num%100)/10; 226: cb 01 movw r24, r22 228: 64 e6 ldi r22, 0x64 ; 100 22a: 70 e0 ldi r23, 0x00 ; 0 22c: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 230: 48 2f mov r20, r24 232: 19 2f mov r17, r25 cc=(num%100)%10; g_aLed[0]=0x80|g_aDisplayBuf[aa]; 234: c9 01 movw r24, r18 236: 64 e6 ldi r22, 0x64 ; 100 238: 70 e0 ldi r23, 0x00 ; 0 23a: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 23e: 9e 01 movw r18, r28 240: 2f 5f subi r18, 0xFF ; 255 242: 3f 4f sbci r19, 0xFF ; 255 244: f9 01 movw r30, r18 246: e6 0f add r30, r22 248: f1 1d adc r31, r1 24a: 80 81 ld r24, Z 24c: 80 68 ori r24, 0x80 ; 128 24e: 80 93 80 00 sts 0x0080, r24 g_aLed[1]=g_aDisplayBuf[bb]; 252: 84 2f mov r24, r20 254: 91 2f mov r25, r17 256: 6a e0 ldi r22, 0x0A ; 10 258: 70 e0 ldi r23, 0x00 ; 0 25a: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 25e: f9 01 movw r30, r18 260: e6 0f add r30, r22 262: f1 1d adc r31, r1 264: 80 81 ld r24, Z 266: 80 93 81 00 sts 0x0081, r24 g_aLed[2]=g_aDisplayBuf[cc]; 26a: 84 2f mov r24, r20 26c: 91 2f mov r25, r17 26e: 6a e0 ldi r22, 0x0A ; 10 270: 70 e0 ldi r23, 0x00 ; 0 272: 0e 94 80 01 call 0x300 ; 0x300 <__udivmodhi4> 276: 28 0f add r18, r24 278: 31 1d adc r19, r1 27a: f9 01 movw r30, r18 27c: 80 81 ld r24, Z 27e: 80 93 82 00 sts 0x0082, r24 g_aLed[3]=0x1c;//显示“v” 282: 8c e1 ldi r24, 0x1C ; 28 284: 80 93 83 00 sts 0x0083, r24 return 0; } 288: 80 e0 ldi r24, 0x00 ; 0 28a: 90 e0 ldi r25, 0x00 ; 0 28c: 60 96 adiw r28, 0x10 ; 16 28e: 0f b6 in r0, 0x3f ; 63 290: f8 94 cli 292: de bf out 0x3e, r29 ; 62 294: 0f be out 0x3f, r0 ; 63 296: cd bf out 0x3d, r28 ; 61 298: cf 91 pop r28 29a: df 91 pop r29 29c: 1f 91 pop r17 29e: 08 95 ret 000002a0
: int main(void) { 2a0: ff 92 push r15 2a2: 0f 93 push r16 2a4: 1f 93 push r17 2a6: cf 93 push r28 2a8: df 93 push r29 static uint g_aAdValue[8]; //A/D转换缓冲区 static uchar g_aLed[4]; void IoInit(void) { PORTA&=~_BV(PA0); //初始化pa0 2aa: d8 98 cbi 0x1b, 0 ; 27 DDRC=0xff; 2ac: 8f ef ldi r24, 0xFF ; 255 2ae: 84 bb out 0x14, r24 ; 20 PORTC=0X00; 2b0: 15 ba out 0x15, r1 ; 21 DDRA=0xf0; 2b2: 80 ef ldi r24, 0xF0 ; 240 2b4: 8a bb out 0x1a, r24 ; 26 PORTA=0xf0; 2b6: 8b bb out 0x1b, r24 ; 27 { uchar i; for(i=0;i<4;i++) { PORTC=g_aLed[i]; PORTA&=~(1<<(i+4)); 2b8: 01 e0 ldi r16, 0x01 ; 1 2ba: 10 e0 ldi r17, 0x00 ; 0 2bc: c8 ee ldi r28, 0xE8 ; 232 2be: d3 e0 ldi r29, 0x03 ; 3 _delay_us(1000); PORTA=0xf0; 2c0: 60 ef ldi r22, 0xF0 ; 240 2c2: f6 2e mov r15, r22 int main(void) { IoInit(); while(1) { NtoBCD(); 2c4: 0e 94 ee 00 call 0x1dc ; 0x1dc 2c8: 44 e0 ldi r20, 0x04 ; 4 2ca: 50 e0 ldi r21, 0x00 ; 0 int Led_disp(void) { uchar i; for(i=0;i<4;i++) { PORTC=g_aLed[i]; 2cc: fa 01 movw r30, r20 2ce: e4 58 subi r30, 0x84 ; 132 2d0: ff 4f sbci r31, 0xFF ; 255 2d2: 80 81 ld r24, Z 2d4: 85 bb out 0x15, r24 ; 21 PORTA&=~(1<<(i+4)); 2d6: 2b b3 in r18, 0x1b ; 27 2d8: c8 01 movw r24, r16 2da: 04 2e mov r0, r20 2dc: 02 c0 rjmp .+4 ; 0x2e2 2de: 88 0f add r24, r24 2e0: 99 1f adc r25, r25 2e2: 0a 94 dec r0 2e4: e2 f7 brpl .-8 ; 0x2de 2e6: 80 95 com r24 2e8: 82 23 and r24, r18 2ea: 8b bb out 0x1b, r24 ; 27 2ec: ce 01 movw r24, r28 2ee: 01 97 sbiw r24, 0x01 ; 1 2f0: f1 f7 brne .-4 ; 0x2ee _delay_us(1000); PORTA=0xf0; 2f2: fb ba out 0x1b, r15 ; 27 2f4: 4f 5f subi r20, 0xFF ; 255 2f6: 5f 4f sbci r21, 0xFF ; 255 } int Led_disp(void) { uchar i; for(i=0;i<4;i++) 2f8: 48 30 cpi r20, 0x08 ; 8 2fa: 51 05 cpc r21, r1 2fc: 39 f7 brne .-50 ; 0x2cc 2fe: e2 cf rjmp .-60 ; 0x2c4 00000300 <__udivmodhi4>: 300: aa 1b sub r26, r26 302: bb 1b sub r27, r27 304: 51 e1 ldi r21, 0x11 ; 17 306: 07 c0 rjmp .+14 ; 0x316 <__udivmodhi4_ep> 00000308 <__udivmodhi4_loop>: 308: aa 1f adc r26, r26 30a: bb 1f adc r27, r27 30c: a6 17 cp r26, r22 30e: b7 07 cpc r27, r23 310: 10 f0 brcs .+4 ; 0x316 <__udivmodhi4_ep> 312: a6 1b sub r26, r22 314: b7 0b sbc r27, r23 00000316 <__udivmodhi4_ep>: 316: 88 1f adc r24, r24 318: 99 1f adc r25, r25 31a: 5a 95 dec r21 31c: a9 f7 brne .-22 ; 0x308 <__udivmodhi4_loop> 31e: 80 95 com r24 320: 90 95 com r25 322: bc 01 movw r22, r24 324: cd 01 movw r24, r26 326: 08 95 ret 00000328 <_exit>: 328: f8 94 cli 0000032a <__stop_program>: 32a: ff cf rjmp .-2 ; 0x32a <__stop_program>