QUOTE (kolobok0 @ Oct 8 2011, 16:28)

этот подход самый оптимальный похоже. по крайней мере он входил в "класические" методы работы вирусов ышо аж под досом и иже.. вызываете метку, идущей сразу за коллом. потом два попа, в нужную ячейку сохраняете ну и относитеьно этого смещения и плюсуете все дефайн константы(до нужных данных или кода) относительно этой метки.
удачи вам
(круглый)
Нет попы в таком случае не нужны, как пример - запустил таймер и что бы не ждать (долго 20mc) ушёл из программы по прерыванию вернулся
CODE
;**************************************************
;* ;;/Initialization TIMER1;;* *
;**************************************************
outi OCR1AH, high(5760)
outi OCR1AL,low(5760)
ldi temp,1<<OCIE1A|0<<OCIE1B|0<<TOIE1
outr TIMSK1,temp
ldi temp,1<<CS11|1<<CS10
outr TCCR1B,temp
rcall ZERO Уходим из этой программы
MAIN:
cli
ldi temp,1<<OCIE1A|1<<OCIE1B|1<<TOIE1
outr TIMSK1,temp
check: rjmp check
TIM1_OVF:
nop
reti
TIM1_COMPA:
ldwi X,RAMEND-2 Возвращаемся обратно
out SPL,XL
out SPH,XH
reti
ZERO:
ldwi X,(RAMEND-0x1FF)
out SPL,XL
out SPH,XH
sei
MAIN1: rjmp MAIN1
adc ......
ldi .......
mov .......
rcall ........
Но принцип я понял.