На самом деле даже в приведенном коде много что не правильно.
Во первых - при переходе на вектор прерывания запрещать/разрешать оные не надо. На досуге посмотрите разницу между командами ret и reti. (Ладно, скажу reti = ret+sei).
Также вы от нас кое что утаиваете - какой контроллер, чему равно ovf0addr (судя по всему оно равно у вас 0, а это вектор RESET), и где в коде у вас .org 300?
Вопросами стека можете пока не забивать себе голову, главное, чтобы он был проинициализирован.
А вообще любая программа на asm должна начинаться примерно так:
Код
;*************************************************
.cseg
;*************************************************
rjmp RESET ; Reset Handler
reti; rjmp EXT_INT0 ; IRQ0 Handler
reti; rjmp EXT_INT1 ; IRQ1 Handler
reti; rjmp PCINT0 ; PCINT0 Handler
reti; rjmp PCINT1 ; PCINT1 Handler
reti; rjmp PCINT2 ; PCINT2 Handler
reti; rjmp WDT ; Watchdog Timer Handler
rjmp TIM2_COMPA; Timer2 CompareA Handler
reti; rjmp TIM2_COMPB; Timer2 CompareB Handler
reti; rjmp TIM2_OVF ; Timer2 Overflow Handler
reti; rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA; Timer1 CompareA Handler
reti; rjmp TIM1_COMPB; Timer1 CompareB Handler
reti; rjmp TIM1_OVF ; Timer1 Overflow Handler
reti; rjmp TIM0_COMPA; Timer0 CompareA Handler
reti; rjmp TIM0_COMPB; Timer0 CompareB Handler
reti; rjmp TIM0_OVF ; Timer0 Overflow Handler
reti; rjmp SPI_STC ; SPI Transfer Complete Handler
reti; rjmp USART_RXC ; USART RX Complete Handler
reti; rjmp USART_UDRE; UDR Empty Handler
reti; rjmp USART_TXC ; USART TX Complete Handler
reti; rjmp ADC_Conv; ADC Conversion Complete Handler
reti; rjmp EE_RDY ; EEPROM Ready Handler
reti; rjmp ANA_COMP ; Analog Comparator Handler
reti; rjmp TWSI ; Two-wire Serial Interface Handler
reti; rjmp SPM_RDY ; Store Program Memory Ready Handler
;----------------------------------------------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------------------------------------------
RESET:
ldi tmp, high(RAMEND) ; Main program start
out SPH, tmp ; Set Stack Pointer to top of RAM
ldi tmp, low(RAMEND)
out SPL, tmp
Этот код берется прямиком из даташит, он приведен в разделе Interrupts.