Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Микросхема прерываний

503
24 февраля 2003 года
CD
39 / / 20.12.1999
Проблемы с чтением из регистра запросов. Читаю так:
mov al, 0Ah
out 20h, al
in al, 20h

Всегда возвращает 0, даже если жду определенное время, сбрасывая перед этим IF либо маскируя прерывания:
mov al, 0FFh
out 21h, al
395
25 февраля 2003 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by CD
Проблемы с чтением из регистра запросов. Читаю так:
mov al, 0Ah
out 20h, al
in al, 20h

Всегда возвращает 0, даже если жду определенное время, сбрасывая перед этим IF либо маскируя прерывания:
mov al, 0FFh
out 21h, al

Может я и не прав, но мне кажется, что порт 20h используется только под запись, читать из него нельзя, да и нечего. Что там может быть записано?

503
25 февраля 2003 года
CD
39 / / 20.12.1999
В двух источниках ("Язык ассемблера", Рудаков, Финогенов и какая-то документация на англ.) сказано, что порт 20h используется именно так.

А если можно иначе, то как?
395
26 февраля 2003 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by CD
В двух источниках ("Язык ассемблера", Рудаков, Финогенов и какая-то документация на англ.) сказано, что порт 20h используется именно так.

А если можно иначе, то как?


Я у тебя спросил, чего там может храниться, что в этих книгах написано?

503
27 февраля 2003 года
CD
39 / / 20.12.1999
Цитирую: "Если в порт 20h послать 0Ah, то разрешается чтение входного регистра контроллера - регистра запросов. Чтение (в т.ч. неоднократное) осуществляется через порт 20h. Читая содержимое IRR, можно определить, на какие входы контроллера поступают сигналы аппаратуры. Регистрация процессором сигнала прерывания приводит к сбросу запроса соответствующего уровня в регистре запросов. Поэтому наблюдение запросов следует выполнять либо при замаскированных, либо при запрещенных прерываниях.
Код OBh, посланный в порт 20h, разрешает чтение регистра обслуживаемых запросов. Чтение (в т.ч. неоднократное) осуществляется через порт 20h. Установка битов регистра выполняется сигналом INTA, поступающим из процессора в контроллер после регистрации им сигнала прерывания."
395
01 марта 2003 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by CD
Цитирую: "Если в порт 20h послать 0Ah, то разрешается чтение входного регистра контроллера - регистра запросов. Чтение (в т.ч. неоднократное) осуществляется через порт 20h. Читая содержимое IRR, можно определить, на какие входы контроллера поступают сигналы аппаратуры. Регистрация процессором сигнала прерывания приводит к сбросу запроса соответствующего уровня в регистре запросов. Поэтому наблюдение запросов следует выполнять либо при замаскированных, либо при запрещенных прерываниях.
Код OBh, посланный в порт 20h, разрешает чтение регистра обслуживаемых запросов. Чтение (в т.ч. неоднократное) осуществляется через порт 20h. Установка битов регистра выполняется сигналом INTA, поступающим из процессора в контроллер после регистрации им сигнала прерывания."

Ну хорощо, если уж так написано, то могу предположить, что в момент чтения никаких запросов на прерывание у устройств нет. Вот. Если ты делаешь задержку, то как? Циклом (без прерываний то)? Может цикл черезчур короткий и успевает пройти пока, не появится запрос на прерывание у таймера.

503
01 марта 2003 года
CD
39 / / 20.12.1999
Холостой цикл с помощью loop, длится пару секунд, так что для прерывания таймера достаточно, еще и подать запрос на прерывание от клавиатуры можно (руками).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог