bomzzz
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ты в прицнипе вопросы задаешь не нужные, с одной тсороны, но с другой если ты поймешь как оно работает, это просветление у тебя вообще вызовет. может лучше уточнить к чему ты это все спрашиваешь. вот даже не могу найти ссылку хорошую. в первом килобайте памяти создается так называемая таблица прерываний, когда прерывания биоса http://www.codenet.ru/progr/dos/ вызываешь, в регистры процессора запихиваешь определенные значения которые тебе надо передать прерыванию (подпрограмме), процессор обращается к первому килобайту памяти по номеру прерывания береть запись из таюлицы прерываний - это значение абсолютный адрес где в памяти сидит подпрограмма выполняющее прерывание туда и передается управление - код выплняется тот. вот можно так хитрюче сделать взять и подменить значение в таблице на свое, тогда биос обратится не к своему коду а к твоему, в нем ты можешь понаделать что хочешь а потом или вернуться к продолжению выполнения кода за вызовом прерывания или передать управления по старому адресу в таблице прерываний... вот птак примерно Добавлено: теперь биос начинает проверять есть ли у меня флоппи диск, а твой код отвечает "да есть", тогда биос вызвает инт13 - дайте мне что записано на первой дорожке флоппи диска, а ты подпихиваешь нужный ответ Добавлено: http://www.kalashnikoff.ru/Assembler/ фиг знает что по этому читать Добавлено: а прерывание может быть как апаратным так и программным - аппаратным например сам контролер вызывает прерывание по таймеру раз там в 55 мс. так компьютер устроен вообщем Добавлено: Программирование на аппаратном уровне вот тут хорошо написано, достаточно одну галву прочитать про работу клавиатуры http://zalil.ru/31760395 | Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:04 26-09-2011 | Исправлено: bomzzz, 11:08 26-09-2011 |
|