Программы на asm я когда-то писал так....
(это пример для At90s4433 - у него однобайтный указатель стека...)
Код
.nolist
.include "4433def.inc"
.list
.listmac
.def A =r19;general scratch space
; ===========================================
.cseg ;CODE segment
.org 0
RJMP RESET ;1 Power-On Reset
RETI ;2 Extrnal interrupt request 0
RETI ;3 Extrnal interrupt request 1
RETI ;4 Timer/Counter1 Capture Event
RETI ;5 Timer/Counter1 Compare Match
RETI ;6 Timer/Counter1 Overflow
RETI ;7 Timer/Counter0 Overflow
RETI ;8 Serial Transfer Complete
RETI ;9 UART,Rx Complete
RETI ;10 UART Data Register Empty
RETI ;11 UART,Tx Complete
RETI ;12 ADC Conversion Complete
RETI ;13 EEPROM Ready
RETI ;14 Analog Comparator
; ===========================================
RESET:
clr A ;
out SREG,A ;
ldi A,low(RAMEND) ; stack init.
out SPL,A ;
; дальше ваша программа
Сообщение отредактировал demiurg_spb - Jun 23 2008, 19:16