
main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000172  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00000004  00800060  00800060  000001e6  2**0
                  ALLOC
  2 .debug_aranges 00000020  00000000  00000000  000001e6  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_pubnames 00000027  00000000  00000000  00000206  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   0000020f  00000000  00000000  0000022d  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 000000fd  00000000  00000000  0000043c  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   00000246  00000000  00000000  00000539  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  00000020  00000000  00000000  00000780  2**2
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    000000cf  00000000  00000000  000007a0  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_loc    000001b0  00000000  00000000  0000086f  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_ranges 00000048  00000000  00000000  00000a1f  2**0
                  CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	1f c0       	rjmp	.+62     	; 0x42 <__bad_interrupt>
   4:	1e c0       	rjmp	.+60     	; 0x42 <__bad_interrupt>
   6:	1d c0       	rjmp	.+58     	; 0x42 <__bad_interrupt>
   8:	1c c0       	rjmp	.+56     	; 0x42 <__bad_interrupt>
   a:	1b c0       	rjmp	.+54     	; 0x42 <__bad_interrupt>
   c:	1a c0       	rjmp	.+52     	; 0x42 <__bad_interrupt>
   e:	19 c0       	rjmp	.+50     	; 0x42 <__bad_interrupt>
  10:	18 c0       	rjmp	.+48     	; 0x42 <__bad_interrupt>
  12:	17 c0       	rjmp	.+46     	; 0x42 <__bad_interrupt>
  14:	16 c0       	rjmp	.+44     	; 0x42 <__bad_interrupt>
  16:	15 c0       	rjmp	.+42     	; 0x42 <__bad_interrupt>
  18:	14 c0       	rjmp	.+40     	; 0x42 <__bad_interrupt>
  1a:	13 c0       	rjmp	.+38     	; 0x42 <__bad_interrupt>
  1c:	12 c0       	rjmp	.+36     	; 0x42 <__bad_interrupt>
  1e:	11 c0       	rjmp	.+34     	; 0x42 <__bad_interrupt>
  20:	10 c0       	rjmp	.+32     	; 0x42 <__bad_interrupt>
  22:	0f c0       	rjmp	.+30     	; 0x42 <__bad_interrupt>
  24:	0e c0       	rjmp	.+28     	; 0x42 <__bad_interrupt>

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf ed       	ldi	r28, 0xDF	; 223
  2c:	cd bf       	out	0x3d, r28	; 61

0000002e <__do_clear_bss>:
  2e:	10 e0       	ldi	r17, 0x00	; 0
  30:	a0 e6       	ldi	r26, 0x60	; 96
  32:	b0 e0       	ldi	r27, 0x00	; 0
  34:	01 c0       	rjmp	.+2      	; 0x38 <.do_clear_bss_start>

00000036 <.do_clear_bss_loop>:
  36:	1d 92       	st	X+, r1

00000038 <.do_clear_bss_start>:
  38:	a4 36       	cpi	r26, 0x64	; 100
  3a:	b1 07       	cpc	r27, r17
  3c:	e1 f7       	brne	.-8      	; 0x36 <.do_clear_bss_loop>
  3e:	02 d0       	rcall	.+4      	; 0x44 <main>
  40:	96 c0       	rjmp	.+300    	; 0x16e <_exit>

00000042 <__bad_interrupt>:
  42:	de cf       	rjmp	.-68     	; 0x0 <__vectors>

00000044 <main>:
#include <avr/io.h>//подключаем библиотеку ATtiny2313
#include <Util/delay.h>//подключаем библиотеку функции задержки
int a,b=0;// инициализируем целочисленные переменные a,b и присваиваем им значение 0
int main (void)// главная функция программы 
{ DDRB=0XFF;//порт В как выход (диоды)
  44:	0f 93       	push	r16
  46:	1f 93       	push	r17
  48:	cf 93       	push	r28
  4a:	df 93       	push	r29
  4c:	8f ef       	ldi	r24, 0xFF	; 255
  4e:	87 bb       	out	0x17, r24	; 23
  DDRD=0X00;//порт D как вход (кнопки)
  50:	11 ba       	out	0x11, r1	; 17
  PORTB=0X00;// обнуляем порт B
  52:	18 ba       	out	0x18, r1	; 24
  PORTD=0XFF;// осуществляем подтяжку внутреннего резистора 
  54:	82 bb       	out	0x12, r24	; 18
  56:	c0 91 60 00 	lds	r28, 0x0060
  5a:	d0 91 61 00 	lds	r29, 0x0061
  5e:	20 91 62 00 	lds	r18, 0x0062
  62:	30 91 63 00 	lds	r19, 0x0063
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  66:	08 ec       	ldi	r16, 0xC8	; 200
  68:	10 e0       	ldi	r17, 0x00	; 0
  6a:	11 c0       	rjmp	.+34     	; 0x8e <main+0x4a>
  
   while (1)// задаем бесконечный цикл
  {
      while (~PIND&(1<<PD0))// пока кнопка D0 нажата
      {a++;// инкрементируем значение переменной а
  6c:	2f 5f       	subi	r18, 0xFF	; 255
  6e:	3f 4f       	sbci	r19, 0xFF	; 255
  70:	88 eb       	ldi	r24, 0xB8	; 184
  72:	9b e0       	ldi	r25, 0x0B	; 11
  74:	f8 01       	movw	r30, r16
  76:	31 97       	sbiw	r30, 0x01	; 1
  78:	f1 f7       	brne	.-4      	; 0x76 <main+0x32>
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  7a:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  7c:	d9 f7       	brne	.-10     	; 0x74 <main+0x30>
	   _delay_ms (300);// ждем 300 мс
       PORTB=a;// записываем в регистр PORTB значение переменной a-первого операнда
  7e:	28 bb       	out	0x18, r18	; 24
  80:	88 eb       	ldi	r24, 0xB8	; 184
  82:	9b e0       	ldi	r25, 0x0B	; 11
  84:	f8 01       	movw	r30, r16
  86:	31 97       	sbiw	r30, 0x01	; 1
  88:	f1 f7       	brne	.-4      	; 0x86 <main+0x42>
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  8a:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  8c:	d9 f7       	brne	.-10     	; 0x84 <main+0x40>
  PORTB=0X00;// обнуляем порт B
  PORTD=0XFF;// осуществляем подтяжку внутреннего резистора 
  
   while (1)// задаем бесконечный цикл
  {
      while (~PIND&(1<<PD0))// пока кнопка D0 нажата
  8e:	80 9b       	sbis	0x10, 0	; 16
  90:	ed cf       	rjmp	.-38     	; 0x6c <main+0x28>
  92:	10 c0       	rjmp	.+32     	; 0xb4 <main+0x70>
#include <avr/io.h>//подключаем библиотеку ATtiny2313
#include <Util/delay.h>//подключаем библиотеку функции задержки
int a,b=0;// инициализируем целочисленные переменные a,b и присваиваем им значение 0
int main (void)// главная функция программы 
{ DDRB=0XFF;//порт В как выход (диоды)
  94:	21 96       	adiw	r28, 0x01	; 1
  96:	88 eb       	ldi	r24, 0xB8	; 184
  98:	9b e0       	ldi	r25, 0x0B	; 11
  9a:	f8 01       	movw	r30, r16
  9c:	31 97       	sbiw	r30, 0x01	; 1
  9e:	f1 f7       	brne	.-4      	; 0x9c <main+0x58>
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  a0:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  a2:	d9 f7       	brne	.-10     	; 0x9a <main+0x56>
	   _delay_ms (300);
      }
      while (~PIND&(1<<PD1))// аналогично
      {b++;
	   _delay_ms (300);
	   PORTB=b;
  a4:	c8 bb       	out	0x18, r28	; 24
  a6:	88 eb       	ldi	r24, 0xB8	; 184
  a8:	9b e0       	ldi	r25, 0x0B	; 11
  aa:	f8 01       	movw	r30, r16
  ac:	31 97       	sbiw	r30, 0x01	; 1
  ae:	f1 f7       	brne	.-4      	; 0xac <main+0x68>
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  b0:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  b2:	d9 f7       	brne	.-10     	; 0xaa <main+0x66>
      {a++;// инкрементируем значение переменной а
	   _delay_ms (300);// ждем 300 мс
       PORTB=a;// записываем в регистр PORTB значение переменной a-первого операнда
	   _delay_ms (300);
      }
      while (~PIND&(1<<PD1))// аналогично
  b4:	81 9b       	sbis	0x10, 1	; 16
  b6:	ee cf       	rjmp	.-36     	; 0x94 <main+0x50>
  b8:	4c 2f       	mov	r20, r28
  ba:	ed 2f       	mov	r30, r29
      {b++;
	   _delay_ms (300);
	   PORTB=b;
	   _delay_ms (300);
      }
      if (~PIND&(1<<PD2))// если нажата кнопка D2
  bc:	82 99       	sbic	0x10, 2	; 16
  be:	03 c0       	rjmp	.+6      	; 0xc6 <main+0x82>
      {PORTB=a+b;// вывести на светодиодную панель результат суммы операндов
  c0:	8c 2f       	mov	r24, r28
  c2:	82 0f       	add	r24, r18
  c4:	88 bb       	out	0x18, r24	; 24
      }
      if (~PIND&(1<<PD3))//если нажата кнопка D3
  c6:	83 99       	sbic	0x10, 3	; 16
  c8:	03 c0       	rjmp	.+6      	; 0xd0 <main+0x8c>
      {PORTB=a-b;//вывести на светодиодную панель результат разности операндов
  ca:	82 2f       	mov	r24, r18
  cc:	84 1b       	sub	r24, r20
  ce:	88 bb       	out	0x18, r24	; 24
      }
      if (~PIND&(1<<PD4))//если нажата кнопка D4
  d0:	84 99       	sbic	0x10, 4	; 16
  d2:	05 c0       	rjmp	.+10     	; 0xde <main+0x9a>
      {PORTB=a*b;//вывести на светодиодную панель результат умножения операндов
  d4:	84 2f       	mov	r24, r20
  d6:	9e 2f       	mov	r25, r30
  d8:	b9 01       	movw	r22, r18
  da:	10 d0       	rcall	.+32     	; 0xfc <__mulhi3>
  dc:	88 bb       	out	0x18, r24	; 24
      }
      if (~PIND&(1<<PD5))//если нажата кнопка D5
  de:	85 99       	sbic	0x10, 5	; 16
  e0:	05 c0       	rjmp	.+10     	; 0xec <__stack+0xd>
      {PORTB=a/b;//вывести на светодиодную панель результат деления операндов
  e2:	c9 01       	movw	r24, r18
  e4:	64 2f       	mov	r22, r20
  e6:	7e 2f       	mov	r23, r30
  e8:	1b d0       	rcall	.+54     	; 0x120 <__divmodhi4>
  ea:	68 bb       	out	0x18, r22	; 24
      }
      if (~PIND&(1<<PD6))//если нажата кнопка D6
  ec:	86 99       	sbic	0x10, 6	; 16
  ee:	cf cf       	rjmp	.-98     	; 0x8e <main+0x4a>
      {a=0;//обнуляем операнд a
       b=0;//обнуляем операнд b
	   PORTB=0x00;//обнуляем регистр PORTB
  f0:	18 ba       	out	0x18, r1	; 24
  f2:	c0 e0       	ldi	r28, 0x00	; 0
  f4:	d0 e0       	ldi	r29, 0x00	; 0
  f6:	20 e0       	ldi	r18, 0x00	; 0
  f8:	30 e0       	ldi	r19, 0x00	; 0
  fa:	c9 cf       	rjmp	.-110    	; 0x8e <main+0x4a>

000000fc <__mulhi3>:
  fc:	55 27       	eor	r21, r21
  fe:	00 24       	eor	r0, r0

00000100 <__mulhi3_loop>:
 100:	80 ff       	sbrs	r24, 0
 102:	02 c0       	rjmp	.+4      	; 0x108 <__mulhi3_skip1>
 104:	06 0e       	add	r0, r22
 106:	57 1f       	adc	r21, r23

00000108 <__mulhi3_skip1>:
 108:	66 0f       	add	r22, r22
 10a:	77 1f       	adc	r23, r23
 10c:	61 15       	cp	r22, r1
 10e:	71 05       	cpc	r23, r1
 110:	21 f0       	breq	.+8      	; 0x11a <__mulhi3_exit>
 112:	96 95       	lsr	r25
 114:	87 95       	ror	r24
 116:	00 97       	sbiw	r24, 0x00	; 0
 118:	99 f7       	brne	.-26     	; 0x100 <__mulhi3_loop>

0000011a <__mulhi3_exit>:
 11a:	95 2f       	mov	r25, r21
 11c:	80 2d       	mov	r24, r0
 11e:	08 95       	ret

00000120 <__divmodhi4>:
 120:	97 fb       	bst	r25, 7
 122:	09 2e       	mov	r0, r25
 124:	07 26       	eor	r0, r23
 126:	0a d0       	rcall	.+20     	; 0x13c <__divmodhi4_neg1>
 128:	77 fd       	sbrc	r23, 7
 12a:	04 d0       	rcall	.+8      	; 0x134 <__divmodhi4_neg2>
 12c:	0c d0       	rcall	.+24     	; 0x146 <__udivmodhi4>
 12e:	06 d0       	rcall	.+12     	; 0x13c <__divmodhi4_neg1>
 130:	00 20       	and	r0, r0
 132:	1a f4       	brpl	.+6      	; 0x13a <__divmodhi4_exit>

00000134 <__divmodhi4_neg2>:
 134:	70 95       	com	r23
 136:	61 95       	neg	r22
 138:	7f 4f       	sbci	r23, 0xFF	; 255

0000013a <__divmodhi4_exit>:
 13a:	08 95       	ret

0000013c <__divmodhi4_neg1>:
 13c:	f6 f7       	brtc	.-4      	; 0x13a <__divmodhi4_exit>
 13e:	90 95       	com	r25
 140:	81 95       	neg	r24
 142:	9f 4f       	sbci	r25, 0xFF	; 255
 144:	08 95       	ret

00000146 <__udivmodhi4>:
 146:	aa 1b       	sub	r26, r26
 148:	bb 1b       	sub	r27, r27
 14a:	51 e1       	ldi	r21, 0x11	; 17
 14c:	07 c0       	rjmp	.+14     	; 0x15c <__udivmodhi4_ep>

0000014e <__udivmodhi4_loop>:
 14e:	aa 1f       	adc	r26, r26
 150:	bb 1f       	adc	r27, r27
 152:	a6 17       	cp	r26, r22
 154:	b7 07       	cpc	r27, r23
 156:	10 f0       	brcs	.+4      	; 0x15c <__udivmodhi4_ep>
 158:	a6 1b       	sub	r26, r22
 15a:	b7 0b       	sbc	r27, r23

0000015c <__udivmodhi4_ep>:
 15c:	88 1f       	adc	r24, r24
 15e:	99 1f       	adc	r25, r25
 160:	5a 95       	dec	r21
 162:	a9 f7       	brne	.-22     	; 0x14e <__udivmodhi4_loop>
 164:	80 95       	com	r24
 166:	90 95       	com	r25
 168:	bc 01       	movw	r22, r24
 16a:	cd 01       	movw	r24, r26
 16c:	08 95       	ret

0000016e <_exit>:
 16e:	f8 94       	cli

00000170 <__stop_program>:
 170:	ff cf       	rjmp	.-2      	; 0x170 <__stop_program>
