
inlineasm.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000004  00800100  000000a4  00000118  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         000000a4  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .stab         00000378  00000000  00000000  0000011c  2**2
                  CONTENTS, READONLY, DEBUGGING
  3 .stabstr      0000005f  00000000  00000000  00000494  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_aranges 00000020  00000000  00000000  000004f3  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_pubnames 00000032  00000000  00000000  00000513  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_info   000000b9  00000000  00000000  00000545  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_abbrev 00000064  00000000  00000000  000005fe  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_line   000000ac  00000000  00000000  00000662  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_frame  00000020  00000000  00000000  00000710  2**2
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    000000cc  00000000  00000000  00000730  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	19 c0       	rjmp	.+50     	; 0x34 <__ctors_end>
   2:	33 c0       	rjmp	.+102    	; 0x6a <__bad_interrupt>
   4:	32 c0       	rjmp	.+100    	; 0x6a <__bad_interrupt>
   6:	31 c0       	rjmp	.+98     	; 0x6a <__bad_interrupt>
   8:	30 c0       	rjmp	.+96     	; 0x6a <__bad_interrupt>
   a:	2f c0       	rjmp	.+94     	; 0x6a <__bad_interrupt>
   c:	2e c0       	rjmp	.+92     	; 0x6a <__bad_interrupt>
   e:	2d c0       	rjmp	.+90     	; 0x6a <__bad_interrupt>
  10:	2c c0       	rjmp	.+88     	; 0x6a <__bad_interrupt>
  12:	2b c0       	rjmp	.+86     	; 0x6a <__bad_interrupt>
  14:	2a c0       	rjmp	.+84     	; 0x6a <__bad_interrupt>
  16:	29 c0       	rjmp	.+82     	; 0x6a <__bad_interrupt>
  18:	28 c0       	rjmp	.+80     	; 0x6a <__bad_interrupt>
  1a:	27 c0       	rjmp	.+78     	; 0x6a <__bad_interrupt>
  1c:	26 c0       	rjmp	.+76     	; 0x6a <__bad_interrupt>
  1e:	25 c0       	rjmp	.+74     	; 0x6a <__bad_interrupt>
  20:	24 c0       	rjmp	.+72     	; 0x6a <__bad_interrupt>
  22:	23 c0       	rjmp	.+70     	; 0x6a <__bad_interrupt>
  24:	22 c0       	rjmp	.+68     	; 0x6a <__bad_interrupt>
  26:	21 c0       	rjmp	.+66     	; 0x6a <__bad_interrupt>
  28:	20 c0       	rjmp	.+64     	; 0x6a <__bad_interrupt>
  2a:	1f c0       	rjmp	.+62     	; 0x6a <__bad_interrupt>
  2c:	1e c0       	rjmp	.+60     	; 0x6a <__bad_interrupt>
  2e:	1d c0       	rjmp	.+58     	; 0x6a <__bad_interrupt>
  30:	1c c0       	rjmp	.+56     	; 0x6a <__bad_interrupt>
  32:	1b c0       	rjmp	.+54     	; 0x6a <__bad_interrupt>

00000034 <__ctors_end>:
  34:	11 24       	eor	r1, r1
  36:	1f be       	out	0x3f, r1	; 63
  38:	cf ef       	ldi	r28, 0xFF	; 255
  3a:	d4 e0       	ldi	r29, 0x04	; 4
  3c:	de bf       	out	0x3e, r29	; 62
  3e:	cd bf       	out	0x3d, r28	; 61

00000040 <__do_copy_data>:
  40:	11 e0       	ldi	r17, 0x01	; 1
  42:	a0 e0       	ldi	r26, 0x00	; 0
  44:	b1 e0       	ldi	r27, 0x01	; 1
  46:	e4 ea       	ldi	r30, 0xA4	; 164
  48:	f0 e0       	ldi	r31, 0x00	; 0
  4a:	02 c0       	rjmp	.+4      	; 0x50 <.do_copy_data_start>

0000004c <.do_copy_data_loop>:
  4c:	05 90       	lpm	r0, Z+
  4e:	0d 92       	st	X+, r0

00000050 <.do_copy_data_start>:
  50:	a4 30       	cpi	r26, 0x04	; 4
  52:	b1 07       	cpc	r27, r17
  54:	d9 f7       	brne	.-10     	; 0x4c <.do_copy_data_loop>

00000056 <__do_clear_bss>:
  56:	11 e0       	ldi	r17, 0x01	; 1
  58:	a4 e0       	ldi	r26, 0x04	; 4
  5a:	b1 e0       	ldi	r27, 0x01	; 1
  5c:	01 c0       	rjmp	.+2      	; 0x60 <.do_clear_bss_start>

0000005e <.do_clear_bss_loop>:
  5e:	1d 92       	st	X+, r1

00000060 <.do_clear_bss_start>:
  60:	a4 30       	cpi	r26, 0x04	; 4
  62:	b1 07       	cpc	r27, r17
  64:	e1 f7       	brne	.-8      	; 0x5e <.do_clear_bss_loop>
  66:	02 d0       	rcall	.+4      	; 0x6c <main>
  68:	1c c0       	rjmp	.+56     	; 0xa2 <_exit>

0000006a <__bad_interrupt>:
  6a:	ca cf       	rjmp	.-108    	; 0x0 <__vectors>

0000006c <main>:

volatile uint8_t value8=0xaa; 
volatile uint16_t value16= 0xbbcc;
int main()
{
  6c:	8b b1       	in	r24, 0x0b	; 11
  6e:	80 93 00 01 	sts	0x0100, r24
  // coloca em value8 o byte lido da PORTA D
  asm volatile("in %0, %1" : "=r" (value8) : "I" (_SFR_IO_ADDR(PORTD)));
  value8++;
  72:	80 91 00 01 	lds	r24, 0x0100
  76:	8f 5f       	subi	r24, 0xFF	; 255
  78:	80 93 00 01 	sts	0x0100, r24

// agora vamos trocar os nibbles de value
  asm volatile("swap %0" : "=r" (value8) : "0" (value8));
  7c:	80 91 00 01 	lds	r24, 0x0100
  80:	82 95       	swap	r24
  82:	80 93 00 01 	sts	0x0100, r24

// agora vamos trocar os bytes da variavel de 16 bits value16
asm volatile("mov __tmp_reg__, %A0" "\n\t"
  86:	80 91 01 01 	lds	r24, 0x0101
  8a:	90 91 02 01 	lds	r25, 0x0102
  8e:	08 2e       	mov	r0, r24
  90:	89 2f       	mov	r24, r25
  92:	90 2d       	mov	r25, r0
  94:	90 93 02 01 	sts	0x0102, r25
  98:	80 93 01 01 	sts	0x0101, r24
             "mov %A0, %B0"         "\n\t"
             "mov %B0, __tmp_reg__" "\n\t"
             : "=r" (value16)
             : "0" (value16)
            );
}
  9c:	80 e0       	ldi	r24, 0x00	; 0
  9e:	90 e0       	ldi	r25, 0x00	; 0
  a0:	08 95       	ret

000000a2 <_exit>:
  a2:	ff cf       	rjmp	.-2      	; 0xa2 <_exit>
