Difference between revisions of "Uknc Resources chapter2"
Line 1: | Line 1: | ||
− | + | {{Uknc Resources header}} | |
+ | |||
'''''Глава 2. Общие принципы экранного вывода в УКНЦ''''' | '''''Глава 2. Общие принципы экранного вывода в УКНЦ''''' | ||
---- | ---- | ||
+ | |||
=== §4. Программные прерывания EMT И TRAP === | === §4. Программные прерывания EMT И TRAP === | ||
Line 9: | Line 11: | ||
Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды: | Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды: | ||
− | + | '''Таблица 4.0. Команды-прерывания''' | |
+ | {| border="1" cellpadding="2" cellspacing="0" align="center" | ||
+ | ! Команда !! Код !! А.В.П. | ||
+ | |- | ||
+ | |align="center"| '''BPT''' || 000003 || 14 | ||
+ | |- | ||
+ | |align="center"| '''IOT''' || 000004 || 20 | ||
+ | |- | ||
+ | |align="center"| '''EMT''' || 104xYZ || 30 | ||
+ | |- | ||
+ | |align="center"| '''TRAP''' || 104XYZ || 34 | ||
+ | |} | ||
+ | |||
+ | <blockquote> | ||
+ | ===== Пример 11. Упражнение с командами-прерываниями IOT и EMT. ===== | ||
+ | Команда IOT (Input-Output Trap) вызывает прерывание с адресом 20. В Системе этот а.в.п. никак не используется. Восполним же этот пробел. Работаем в ОЗУ ПП: | ||
+ | <pre> | ||
+ | 20: 000240 | ||
+ | |||
+ | 240: 104044 EMT 44 | ||
+ | 163573 "* ЗАГРУЗКА ИЗ СЕТИ *" | ||
+ | 000002 RTI</pre> | ||
+ | Теперь в любую свободную ячейку запишите число 4 (код IOT) и запустите с этого адреса. Ну, а если Вам наскучит играться с этой надписью, в приложении найдите другую, и адрес ее запишите после кода EMT 44. А еще лучше — читайте дальше. | ||
+ | </blockquote> | ||
+ | |||
+ | Первые две команды (BPT и IOT) нам неинтересны, хотя при желании и их можно пустить в дело. Две остальные — EMT и TRAP — представляют некоторый интерес. | ||
+ | |||
+ | Старший байт этих команд содержит код команды (по нему процессор опознает их), а младший может быть любым. Такая организация команд позволяет нести в себе полезную информацию. Чтобы реализовать эту информацию, надо к каждому прерыванию подвесить свои программы обработки прерываний, которые называются диспетчерами. | ||
+ | |||
+ | Это название связано с тем, что в зависимости от кода в младшем байте, эти программы передают управление разным подпрограммам, выполняющим каждая свое действие. Это позволяет использовать команды EMT и TRAP как однословные команды вызова подпрограмм. | ||
+ | |||
+ | Рассмотрим реализацию обоих диспетчеров в Системе. | ||
+ | |||
+ | ==== 4.1 EMT-диспетчер ==== | ||
+ | |||
+ | |||
'''''TODO''''' | '''''TODO''''' |
Latest revision as of 06:41, 1 April 2007
Это — часть книги Ресурсы УКНЦ.
Глава 2. Общие принципы экранного вывода в УКНЦ
Contents
§4. Программные прерывания EMT И TRAP
4.0 Команды-прерывания
Среди множества команд микропроцессора 1801 есть несколько команд, действие которых состоит в следующем: вызывается прерывание по фиксированному адресу (адрес вектора прерываний — а.в.п.). Вот эти команды:
Таблица 4.0. Команды-прерывания
Команда | Код | А.В.П. |
---|---|---|
BPT | 000003 | 14 |
IOT | 000004 | 20 |
EMT | 104xYZ | 30 |
TRAP | 104XYZ | 34 |
Пример 11. Упражнение с командами-прерываниями IOT и EMT.
Команда IOT (Input-Output Trap) вызывает прерывание с адресом 20. В Системе этот а.в.п. никак не используется. Восполним же этот пробел. Работаем в ОЗУ ПП:
20: 000240 240: 104044 EMT 44 163573 "* ЗАГРУЗКА ИЗ СЕТИ *" 000002 RTIТеперь в любую свободную ячейку запишите число 4 (код IOT) и запустите с этого адреса. Ну, а если Вам наскучит играться с этой надписью, в приложении найдите другую, и адрес ее запишите после кода EMT 44. А еще лучше — читайте дальше.
Первые две команды (BPT и IOT) нам неинтересны, хотя при желании и их можно пустить в дело. Две остальные — EMT и TRAP — представляют некоторый интерес.
Старший байт этих команд содержит код команды (по нему процессор опознает их), а младший может быть любым. Такая организация команд позволяет нести в себе полезную информацию. Чтобы реализовать эту информацию, надо к каждому прерыванию подвесить свои программы обработки прерываний, которые называются диспетчерами.
Это название связано с тем, что в зависимости от кода в младшем байте, эти программы передают управление разным подпрограммам, выполняющим каждая свое действие. Это позволяет использовать команды EMT и TRAP как однословные команды вызова подпрограмм.
Рассмотрим реализацию обоих диспетчеров в Системе.
4.1 EMT-диспетчер
TODO