23.12.2011, 22:42 | #3 (ссылка) |
Новичок
Регистрация: 26.09.2011
Сообщений: 605
Репутация: 2
|
А что выводить ? Это значит т.е он прерывает свою стандартную работу и начинает выполнять заданную команду ? Можешь пример какой нить по легче а то я начинаю только учиться и прохожу язык программирования Qbasic :-D
|
23.12.2011, 22:50 | #4 (ссылка) |
Знаток
|
Что выводить:
.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 Он прерывает программу на выполнение команды. После её выполнения продолжает работу. |
23.12.2011, 22:57 | #5 (ссылка) |
Стажёр
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
|
iRomul, ты привёл пример программного прерывания, а IRQ - есть прерывание аппаратное.
Headsho, IRQ, если на пальцах, это есть сигнал процессору от некоторого устройства компьютера с целью привлечь к себе его, процессора, внимание. Например модем принял в свой буфер пакет данных, которые необходимо сохранить, далее он посылает процессору сигнал IRQ с определённым номером, процессор, получив этот сигнал, отвлекается от выполняемой работы (совершает прерывание задачи) и переходит к выполнению соответствующего данному прерыванию обработчику прерывания (в данном случае - драйверу модема), обработчик считывает из буфера модема данные в ОЗУ и сообщает процессору соответствующей командой, что можно вернуться к выполнению прерванной работы. Сам процессор тоже может вызывать аппаратные прерывания (например при делении на 0), это так называемые "внутренние прерывания" или "ловушки". |
23.12.2011, 23:07 | #7 (ссылка) |
Стажёр
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
|
В QBasic`е прерывания непосредственно (на прямую) использовать затруднительно, но интерпретатор при работе их использует, как пример операторы inkey$ и input используют аппаратное прерывание от клавиатуры, а оператор print вызывает программные прерывания
|
23.12.2011, 23:18 | #9 (ссылка) |
Стажёр
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
|
Программные прерывания, грубо говоря, это системные подпрограммы и вызываются они из исполняемых программ командой int ассемблера. В основном они предназначены для работы с железом. Пример тебе уже приводил выше уважаемый iRomul. Т.е. программа как бы прерывает саму себя.
Кстати обработчик аппаратного прерывания можно вызвать и программно, но, как правило, смысла это не имеет, так как обработчик аппаратного прерывания предполагает определённое состояние оборудования при своём вызове. |
23.12.2011, 23:25 | #11 (ссылка) |
Стажёр
Регистрация: 05.11.2011
Сообщений: 1,527
Репутация: 128
|
inpUt
Более подробно надо в соответствующей литературе читать. Обычно данная тема хорошо описывается в книгах по ассемблеру и архитектуре ЭВМ. Вообще в языках высокого уровня работа с прерываниями обычно скрыта от программиста, а при программировании под Windows, Linux и других ОС защищённого режима программисту затруднён прямой доступ к прерываниям и в ассемблере. |
Ads | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прерывание или железо?! | 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 |