Программирование на Ассемблере
Эта таблица расположена в самом начале
оперативной памяти - с адреса 0 (для MC68020 это не совсем так: в MC68020
начальный адрес таблицы исключений берется из специального регистра - VBR).
Приведем соответствие векторов и адресов исключений: No Адрес Назначение
----------------------------------------------------------------------------
0 $000 RESET: начальный SSP
1 $004 RESET: начальный PC
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 вектора пользователя Рассмотрим подробнее каждый элемент таблицы: RESET: начальный SSP.
При сбросе компьютера запускается специальная программа - RESET. Указатель
стека перед выполнением этой программы берется из ячейки с адресом $000
(начальный SSP). RESET: начальный PC.
А адрес самой подпрограммы RESET (то есть начальное значение PC) берется из
ячейки $004. Ошибка шины.
Это исключение генерируется сопроцессором, например, при попытке обращения
к несуществующей (зарезервированной) памяти. Ошибка адресации.
Генерируется при попытке доступа к слову или длинному слову по нечетному
адресу. Неопознанная команда.
|