Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Программируемый Контролер Прерываний  (Прочитано 9802 раз)
0 Пользователей и 1 Гость смотрят эту тему.
katia2011
Новенький

ru
Offline Offline

« : 26-02-2011 20:52 » 

Здравствуйте!

Изучаю по учебнику про Программируемый Контролер Прерываний (ПКП).Дано задание написать программу на ассемблере, которая устанавливает контроллер в в Режим специального маскирования
В учебнике про ПКП очень скудно написано прочитала статью http://***.piter-press.ru/attachment...047&at=exc&n=0 тут http://***.helloworld.ru/texts/comp/.../syst/lek4.htm

не могу понять понять что от меня требуется с чего начать написания этого кода

помогите с началом кода а я постараюсь понять суть и дописать его сама
спасибо
« Последнее редактирование: 27-02-2011 04:34 от Джон » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 26-02-2011 22:39 » 

katia2011, начало и конец, а равно и середину, ты напишешь сама. А вот понять, что надо сделать и зачем - это куда важнее.

Скажи сразу: понимаешь ли ты, как работает этот контроллер и что именно не понимаешь.


ЗЫ: ссылки не целевые. Подозреваю спам!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
katia2011
Новенький

ru
Offline Offline

« Ответ #2 : 26-02-2011 23:34 » new

RXL, контролер принимает запросы от вычислительного устройства , сортирует их по приоритету и посылает запрос на прерывание в ЦП вместе с информацией о местоположение программы. Контроллер  программируется  с  помощью  команд,  которые  формируются  в регистре АL центрального процессора и передаются  в ПКП по  команде OUT. Различают два вида команд программирования: команды инициализации ICW, используемые  для  начальной  подготовки  контроллера  к  работе,  и  рабочие команды OCW. Мне нужна команда OCW3 - режим cпециального  маскирования. Применяется  для  того,  чтобы программы обслуживания прерываний могли динамически изменять структуру системных приоритетов в процессе работы. Например, при выполнении какой-либо части подпрограммы обслуживания необходимо запретить запросы более низких  уровней,  а  при  выполнении  другой  части -  разрешить  их.  Трудность  реализации таких действий состоит в том, что пока выполняется подпрограмма и  соответствующий  разряд  в  регистре  РОП  не  сброшен,  контроллер  не  реагирует  на  запросы  с  более  низким  приоритетом.  Для  разрешения прерываний  со  всех  уровней (в  том  числе  и  с  более  низких)  устанавливается режим  специального  маскирования  (затенения),  при  котором  запрещается только  прерывание  на  данном  уровне.  Этот  режим  задается  и  отменяется командой OCW3. 
 
как я понимаю : выполняется задача1( состоит из нескольких уровней)- поступает запрос(задача2 - приоритет ниже) : при "выключеном режиме специального  маскирования" запросы будут отклоняться до момента окончания выполнения задачи1, при "включеном"  запрос(задача2 - приоритет ниже) пройдет и будет ожидать окончания выполнения одного из уровней задачи1 -> выполняется задача2 потом продолжится выполнение задачи1
-----
если все верно как это реализовать?

Добавлено через 9 часов, 57 минут и 12 секунд:
Перед работой контроллер должен быть проинициализирован. Инициализация осуществляется загрузкой управляющих слов (до 4-х байт).
 После инициализации контроллер переходит в операционный режим.
Мне нужен  Порт 20h - OCW3 слово управления операцией

               биты 1..0 чтение регистра:
               0 или 1 чтения нет,
               2 читать IRR при следующем обращении,
               3 читать ISR при следующем обращении;
               бит 2 1 указание сформировать слово-состояния (содержит номер наивысшего запроса из поступивших);
               биты 4..3 01 признак OCW3;
               биты 6..5 специальное маскирование:
               0 или 1 отсутствует,
               2 отменяет,
              3 устанавливает (при этом выравниваются приоритеты запросов);
              бит 7 равен нулю.
----------------------------------
        ;---установка прерывания

        PUSH DS ;сохраняем DS

        MOV DX,OFFSET ROUT ;смещение для процедуры в DX

        MOV AX,SEG ROUT ;сегмент процедуры

        MOV DS,AX ;помещаем в DS

        MOV AH,20H;функция установки вектора

        MOV AL,60H ;номер вектора

        INT 21H ;меняем прерывание

        POP DS ;восстанавливаем DS

        ;---процедура прерывания

        ROUT PROC FAR

        .

        .

        IRET

        ROUT ENDP
-----------------------------------------------

правильно?


« Последнее редактирование: 27-02-2011 09:31 от katia2011 » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines