 ReAl (30.05.2007 14:26, просмотров: 1) ответил Т.Достоевский на Согласен абсолютно! Особенно в в свете появления двухядерных мелкоконтроллеров.
 ReAl (30.05.2007 14:26, просмотров: 1) ответил Т.Достоевский на Согласен абсолютно! Особенно в в свете появления двухядерных мелкоконтроллеров.
Тю, зачем эти сложности и ещё и занятый регистр? <asm>
TF1_SEG  SEGMENT CODE INBLOCK
  RSEG TF1_SEG
  USING 0
TF1_isr:
    _push <PSW,ACC,AR0>
     ; делаем быструю часть
    ...
    ...
     ; ну, например, по нулю счётчика динная работа
    jz L?done
L?long_work:            ; !!! вот оно - и никаких лишних команд
    acall L?reti_only   ; выполнится быстрее, кода меньше, расход стека тот же
    _push <AR1,B>
    ; длинная работа
    ...
    ; да, да, в конце такого куска "между прерыванием и фоном"
    ; можно выходить не по ret, а по reti - экономит несколько pop-ов
    _pop <B,AR1>
L?done:
    _pop <AR0,ACC,PSW>
L?reti_only:
    reti
</asm>