Können kann man sicher immer. Was mir bei Deinem Schnippsel fehlen würde ist eine ganze Menge Beschreibung. Was soll das Programm, was ist das Target (der Controller alleine ist mir nicht genug Aussage etc.) etc.? Dabei muss ich sagen, dass das folgende Beispiel sicher nicht der Weisheit letzter Schluss ist.

Genau zu Deiner Aussage: ob AVRStudio einen File "main" selbst laden kann, weiß ich nicht, glaub ich nicht. Aber man kann ja unter [Edit Current Configuration Options] zusätzliche Files einbinden. Find ich nicht pfiffig, ich habe gerne ALLES in einer Projektdirectory. Ich kopiere (copy&paste) einen passenden File bzw. Auszuge davon aus einem passenden Projektdirectory in das Editorfenster im Studio. Mein Beispiel:

Code:
;===================================================================================
;========== Beachte: printout aus AVRStudio geht (nur) bis col 85 ==================
;* Target MCU        : ATtiny13
;* Target Hardware   : Servotester-Platine, Servo auf PB3, Poti auf PB4
;* Target cpu-frequ. : 9,6 MHz, interner Oszillator
;===================================================================================
;*Versionsgeschichte:
;====================
;x++   19Sep10 2300 msges und msmin geändert - aber läuft nicht gut
;x1599 21jan08 12ff Version für die "Servoplatine" adaptiert
;       dazu ISR+adc+servo1-x30-gut.asm abgeändert.
;
;* Aufgabenstellung
;* ISR zum Testen von einem Servo mit der Servotester-Platine
;	Servo über getrennte Leitung, max. 1 A, vom Labornetzteil versorgt
;	Portbelegung, Schaltung auszugsweise (übernomm. v. srv-adc+pwm-x29b.asm)
;
; Vcc(6V LNT) -----------------------------------------Vcc-Servo1
;                                                                 
; Vcc -----------tiny13-Vcc                                 
;         |                                                
;         |      tiny13-PB3=pin2----------------+---Signal-Servo1   
;         |                                     |               
;         |              + - - (poti1->ADC) - - +               
;         |              |                                      
;         |      tiny13-PB4--------+                           
;         |                        V                           
;         |                   +--------+                       
;         +-------------------+ 25klin +----+                  
;                             +--------+    |                  
;                                           |                  
; GND---------------------------------------+----------GND-Servo1
;             
;* ===============================================
; ######### Original war: ISR+adc+servo1-x30-gut.asm
;===================================================================================
; Speicherbelegung
;r14  low-Byte der ADC-Wandlung (lsb)
;r15  high-Byte der ADC-Wandlung: Beide ergeben einen Wert zwischen 0...1023
;r16 Mehrzweck, high-Byte in Pausen "pause_an", "pause_aus", "led_ende" u.ä.
;r17			low-Byte in Pausen, s.o.
;
;r18  --		--
;r19  --		--
;r20  --		--
;
;r21  Byte		Steuerbyte. Es werden nur Bits ausgewertet
;		"Rampe" an-aus, 1=Rampe an, bit 1 = Servo 1 , bit 5 = Servo 2
;		Übernahme Rampenwert, 1=Daten wurden noch nicht übernommen vom
;		Hauptprogramm in die ISR, 0=ISR hat Daten abgeholt und zwar
;			bit 2 = Servo 1 , bit 6 = Servo 2
;r22  1/2 Word lsb	Zeitwert Rampe aus auf-ab-Rechnerei im Hauptprogramm
;r23  1/2 Word msb zu r26
;r24  1/2 Word LSB	Zeitwert Rampe aus ADC/Poti im Hauptprogramm
;r25  1/2 Word MSB		wird vom r14/15 geholt und zurechtgerechnet
;
;r26  1/2 Word LSB	GESAMTDAUER Servoimpuls MUSS in r26/27 sein wegen sbiw
;r27  1/2 Word MSB	Zeitwert für GESAMTDAUER Servoimpuls, etwa 500 Takte ?
;
;r28  1/2 Word lsb	LSB RampenCOUNTER Servo1, wird in ISR runtergezählt
;r29  1/2 Word msb	MSB	  Counter stammt vom ADC
;r30  1/2 Word lsb	LSB Auf-ab-COUNTER Servo2, wird in ISR runtergezählt
;r31  1/2 Word msb	MSB
;
;===================================================================================

#include "tn13def.inc"

; Interrupthandler-Tabelle (aus ATTiny13_doc2535.pdf, Seite 42)
;	Address Code	Labels		; Comments
.org	0x0000	rjmp	anfang		; Reset Handler
;.org	0x0003	rjmp	isr_x13		;TIMO_OVF = Timer0 Overflow Handler

.org	0x0006	rjmp	isr_ctc		; IRS für Timer0 CompareA Handler
;
;===================================================================================
; Deklarationen für den Praeprozessor
; Konstanten		####### evtl. auch keine Konstanten definiert
;
#define	a	r16	;Kurzbezeichung für Allzweckregister r16
;
;	Anschlussbelegung, vgl. srv-adc+pwm-x29b.asm
#define servo1	3	;Servo 1 auf Port PB3
#define potiadc	2	;Poti 1 am Port PB4 geht auf ADC-Kanal 2
;
;Festwerte und div. Daten für adcdat etc ====>
#define	adcpsc	7	; =7 ==> Clock/128, 9,6 MHz werden 75 kHz, vgl. doc, S93
;#define adcdat	3	;Dummywert vom ADC   ###>>> "Nur" 8Bit-Wandlung ! ? ! 
#define msges	5000	;Gesamtzeit der Rampe: 5000 ISR-Zyklen sind 20 ms
#define mstest	1000     ;Test ergibt mit mstest 500 und tmprs 40: für 2,0 ms
                        ;  das heisst: 4 µs Interrupt-Abstand (Fehler +4%)
#define msmin	100     ;Minimalwert für Rampe: 0,5 ms
#define	tmrprs	 38     ;Preset im Timer-Register (hoffentlich für CTC)
;
;===================================================================================
; Hauptprogramm
;===================================================================================
;
anfang:
	rcall  	mc_init		;Initialisiere den Mikrocontroller
	rcall	isr_ini		;Initialisiere die ISR
	rcall	adcinit		;ADC initialisieren
;
	sei			; .. Interrupts allgemein zulassen im Hauptprogramm
Vielleicht hilfts Dir. Viel Erfolg.