[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] Using in/out Instructions with ATmega128
From: |
Weddington, Eric |
Subject: |
RE: [avr-gcc-list] Using in/out Instructions with ATmega128 |
Date: |
Mon, 4 May 2009 16:48:05 -0600 |
> -----Original Message-----
> From:
> address@hidden
> [mailto:address@hidden
> org] On Behalf Of Thomas D. Dean
> Sent: Monday, May 04, 2009 4:37 PM
> To: address@hidden
> Subject: [avr-gcc-list] Using in/out Instructions with ATmega128
>
> I have
> # avr-gcc --version
> avr-gcc (GCC) 4.3.2
> Copyright (C) 2008 Free Software Foundation, Inc.
> ...
>
> I want to use the ATmega128 and in/out instructions for
> registers below
> 0x40.
>
> # avr-gcc -mmcu=atmega128 -c -o 4x40-lcd.o xxx.c
> # avr-gcc -mmcu=atmega128 4x40-lcd.o -o xxx.elf -lc
> # avr-objdump -d xxx.elf
> ...
> 804: a2 e3 ldi r26, 0x32 ; 50
> 806: b0 e0 ldi r27, 0x00 ; 0
> 808: e2 e3 ldi r30, 0x32 ; 50
> 80a: f0 e0 ldi r31, 0x00 ; 0
> 80c: 80 81 ld r24, Z
> 80e: 8f 70 andi r24, 0x0F ; 15
> 810: 80 62 ori r24, 0x20 ; 32
> 812: 8c 93 st X, r24
> ...
>
> This can be done with four instructions, in, andi, ori, and,
> out. And,
> 6 fewer clocks.
Where is the source code that corresponds to the above assembly?