Освой компьютер
Программирование исключений. Механизм исключений, рассмотренный в разделе 2, предоставляет широкие
возможности по отслеживанию ошибочных ситуаций, которые могут возникнуть в
программе. Процессор MC680x0 имеет следующий набор исключений: Номер Адрес Причина
----------------------------------------------------------------------
2 $008 ошибка шины
3 $00C ошибка адресации
4 $010 неправильная команда
5 $014 деление на ноль
6 $018 команда CHK
7 $01C команда TRAPV
8 $020 нарушение привелегий
9 $024 трассировка
10 $028 эмуляция команд Axxx
11 $02C эмуляция команд Fxxx
$030-$03B зарезервировано
15 $03C неинициализированное прерывание
$040-$05F зарезервировано
24 $060 неавторизованное прерывание
25-31 $064-$07F прерывания уровней 1-7
32-47 $080-$0BF команды TRAP
$0C0-$0FF зарезервировано
64-255 $100-$3FF пользовательские вектора Остановимся подробнее на командах TRAP. Существует 16 различных команд TRAP
(коды - от 0 до 15), с каждой из которых связана своя подпрограмма-
обработчик. Так, при выполнении команды TRAP #0, процессор переходит в
режим супервизора и приступает к выполнению подпрограммы, адрес которой
записан в ячейке $80. Эта подпрограмма должна завершаться командой RTE.
Команды TRAP не используются операционной системой Amiga (в отличие от
операционной системы TOS компьютеров ATARI ST, где команды TRAP служат для
вызова системных функций), поэтому их можно использовать в программах
пользователя.
Напишем собственный обработчик (диспетчер) исключений TRAP. Тестовая
программа будет состоять из следующих частей: 1. Инициализация векторов TRAP
2. Подпрограмма обработки исключений TRAP
3.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|