|
int_rout:
push ACC
push PSW
push DPL
push DPH
;push whatever_else
;.......
;....... Здесь сам код обработчика
;.......
;pop whatever_else
pop DPH
pop DPL
pop PSW ;SP указывает на сохраненный ACC, но POP ACC мы пока не делаем
;
;Начало процедуры принудительного возврата
;
mov A,R0 ;Сохраняем ТЕКУЩИЙ R0 в уже ненужном ACC
mov R0,SP ;Копируем SP в R0
dec R0 ;Пропускаем сохраненный ACC - теперь R0 указывает на старший байт адреса возврата
mov @R0,#high(kuda_nado);Подменяем старший байт адреса возврата
dec R0 ;Теперь R0 указывает на младший байт адреса возврата
mov @R0,#low(kuda_nado) ;Подменяем младший байт адреса возврата
mov R0,A ;Восстанавливаем ТЕКУЩИЙ R0
pop ACC ;Вот теперь восстанавливаем ACC
reti ;Возврат kuda_nado
E-mail: info@telesys.ru