
Сообщение от
Oleg N. Cher
Кстати, а как это правильно сделать? При попытке записи в этот регистр БК10 вызывает какое-то аццкое прерывание?
Примерно так. На 0010 при попытке записи туда возникает ошибка шины, что приводит к прерыванию по 4 вектору.
Код:
clr @#is11m
mov @#4, @#save4
mov r6, @#savesp
mov #restor, @#4
clr @177662
mov #1, @#is11m
restor:
mov (r7)+, r6
savesp:
.word 1000
mov (r7)+, @(r7)+
save4:
.word 100000, 4
....
is11m:
.word 0
Признаю, код немного хулиганский, но жаль тратить память просто так. Её у нас немного.
Если неясно, я сохраняю указатель стека и предыдущее значение вектора 4 прямо в поле непосредственной константы команды mov, которая восстанавливает всё обратно.