Вернуться   Компьютерный форум > Компьютеры > Железо
 
 
Опции темы
Старый 23.12.2011, 22:24   #1 (ссылка)
Новичок
 
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
По умолчанию Что такое прерывание IRQ ?

Всем привет ! Я хочу узнать что такое прерывание IRQ я прочитал несколько статей поэтому вопросу ну не всё понял ) Вот мой вопрос что такое прерывание IRQ ? Для чего он нужен ?
Headsho вне форума  
Старый 23.12.2011, 22:34   #2 (ссылка)
Знаток
 
Аватар для iRomul
 
Регистрация: 26.06.2008
Сообщений: 2,631
Записей в блоге: 1
Репутация: 152
По умолчанию

На вики всё написано прекрасно, что такое прерывание. Сообщаем процессу, что нужно выполнить какое-то заданное события.
На примере masm:
mov ah, 02h 'в ah записываем команду 02h (вывод на экран)
int 21h 'Вызываем прерывание, выполняющее эту команду.
iRomul вне форума  
Старый 23.12.2011, 22:42   #3 (ссылка)
Новичок
 
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
По умолчанию

А что выводить ? Это значит т.е он прерывает свою стандартную работу и начинает выполнять заданную команду ? Можешь пример какой нить по легче а то я начинаю только учиться и прохожу язык программирования Qbasic :-D
Headsho вне форума  
Старый 23.12.2011, 22:50   #4 (ссылка)
Знаток
 
Аватар для iRomul
 
Регистрация: 26.06.2008
Сообщений: 2,631
Записей в блоге: 1
Репутация: 152
По умолчанию

Что выводить:
.data
vaider db 'Luke, im yor father', '$' ;объявляем переменную vaider с текстом Luke, im yor father
.code
mov dx, offset vaider ;помещаем адрес переменной в регистр dx
mov ah, 9h ;записываем команду вывода на экран в аккумулятор. Команда читает регистр dx
int 21h ;вызываем прерывание, выполняющее команду в регистре ah

Он прерывает программу на выполнение команды. После её выполнения продолжает работу.
iRomul вне форума  
Старый 23.12.2011, 22:57   #5 (ссылка)
Стажёр
 
Аватар для CrazyPOVT
 
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
По умолчанию

iRomul, ты привёл пример программного прерывания, а IRQ - есть прерывание аппаратное.

Headsho, IRQ, если на пальцах, это есть сигнал процессору от некоторого устройства компьютера с целью привлечь к себе его, процессора, внимание. Например модем принял в свой буфер пакет данных, которые необходимо сохранить, далее он посылает процессору сигнал IRQ с определённым номером, процессор, получив этот сигнал, отвлекается от выполняемой работы (совершает прерывание задачи) и переходит к выполнению соответствующего данному прерыванию обработчику прерывания (в данном случае - драйверу модема), обработчик считывает из буфера модема данные в ОЗУ и сообщает процессору соответствующей командой, что можно вернуться к выполнению прерванной работы.
Сам процессор тоже может вызывать аппаратные прерывания (например при делении на 0), это так называемые "внутренние прерывания" или "ловушки".
CrazyPOVT вне форума  
Старый 23.12.2011, 22:59   #6 (ссылка)
Новичок
 
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
По умолчанию

вот по понятнее а програмные по понятнее можете сказать а то то что пишите не понятными терминами программирование я не со всем понимаю )
Headsho вне форума  
Старый 23.12.2011, 23:07   #7 (ссылка)
Стажёр
 
Аватар для CrazyPOVT
 
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
По умолчанию

Цитата:
Сообщение от Headsho Посмотреть сообщение
прохожу язык программирования Qbasic
В QBasic`е прерывания непосредственно (на прямую) использовать затруднительно, но интерпретатор при работе их использует, как пример операторы inkey$ и input используют аппаратное прерывание от клавиатуры, а оператор print вызывает программные прерывания
CrazyPOVT вне форума  
Старый 23.12.2011, 23:14   #8 (ссылка)
Новичок
 
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
По умолчанию

Вот насчёт inpot мне всё понятно. Вот молодец CrazyPOVT хороший пример я его как раз inpot прохожу ) Ещё что можете сказать насчёт IRQ ?
Headsho вне форума  
Ads
Старый 23.12.2011, 23:18   #9 (ссылка)
Стажёр
 
Аватар для CrazyPOVT
 
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
По умолчанию

Цитата:
Сообщение от Headsho Посмотреть сообщение
а програмные по понятнее можете сказать
Программные прерывания, грубо говоря, это системные подпрограммы и вызываются они из исполняемых программ командой int ассемблера. В основном они предназначены для работы с железом. Пример тебе уже приводил выше уважаемый iRomul. Т.е. программа как бы прерывает саму себя.
Кстати обработчик аппаратного прерывания можно вызвать и программно, но, как правило, смысла это не имеет, так как обработчик аппаратного прерывания предполагает определённое состояние оборудования при своём вызове.
CrazyPOVT вне форума  
Старый 23.12.2011, 23:22   #10 (ссылка)
Новичок
 
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
По умолчанию

Я почти понял )
Headsho вне форума  
Старый 23.12.2011, 23:25   #11 (ссылка)
Стажёр
 
Аватар для CrazyPOVT
 
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
По умолчанию

Цитата:
Сообщение от Headsho Посмотреть сообщение
inpot
inpUt


Цитата:
Сообщение от Headsho Посмотреть сообщение
Ещё что можете сказать насчёт IRQ
Более подробно надо в соответствующей литературе читать. Обычно данная тема хорошо описывается в книгах по ассемблеру и архитектуре ЭВМ.
Вообще в языках высокого уровня работа с прерываниями обычно скрыта от программиста, а при программировании под Windows, Linux и других ОС защищённого режима программисту затруднён прямой доступ к прерываниям и в ассемблере.
CrazyPOVT вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание или железо?! ilia61 Неисправности, настройка 3 25.02.2011 22:13
что такое? Александр12345 Железо 3 20.12.2010 20:47
Прерывание работы компа miha70 Железо 1 30.06.2009 01:46
что такое SSH shtorm Веб-строительство 2 13.05.2009 18:43
Что такое CRC Prok1963 Утилиты 5 03.04.2009 09:28


Текущее время: 13:15. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.