© Иван Рощин, Москва
| ZXNet | : 500:95/462.53 |
| : bestview@mtu-net.ru | |
| WWW | : http://www.ivr.da.ru |
Дата последнего редактирования: 14.11.2002.
Прочитав в
CALL #007C ; По этому адресу - RET. DEC SP ; Т.к. в стеке находится DEC SP ; адрес возврата. POP HL ; Снимаем адрес со стека.
У этого способа имеется несколько недостатков:
Есть способ, свободный от указанных выше недостатков:
HALT ; В стек запишется адрес
; следующей команды (для
; возврата из прерывания).
DEC SP ; Так же, как и в первом
DEC SP ; фрагменте,
POP HL ; снимаем адрес со стека.
При этом расход памяти составит лишь четыре байта вместо шести. В отличие от предыдущего примера, прерывания во время работы этого фрагмента программы должны быть разрешены (чтобы выполнилась команда HALT). Несмотря на это, между командами DEC SP прерывание не может произойти, т.к. после выполнения команды HALT остаётся ещё 1/50 секунды до следующего прерывания.
|
Другие мои статьи о различных приёмах оптимизации при программировании на ассемблере Z80:
|