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 07: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