![]() |
|
|
![]()
|
|
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Как в отладчике debug посмотреть вектор 21-го прерывания?
И после того, как программа его изменит функцией 35h, увидеть в debug изменения? Таблица векторов прерываний занимает первый килобайт оперативной памяти - адреса от 0000:0000 до 0000:03FF Прерыванию с номером 0 соответствует адрес 0000:0000, прерыванию с номером 1 - 0000:0004 Значит прерывание с номером 21, по адресу 54h(4d*21d)=84d=54h Пишу в debug: d 0:54 Запускаю программу perehvat.com, которая меняет вектор 21го прерывания Опять пишу d 0:54 Никаких изменений Почему? почему функция 35h прерывания 21h выдает в es-086c bx-42b7 Хотя должна es-0000 bx-0054 PS: программа работает правильно, прерывание перехватывает, строка выводится другая tmp.com
Это сообщение отредактировал(а) GQU - 25.12.2014, 22:30 |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Прерывание 21h. Адрес 21h*4h=84h.
По адресу 0000:0084 хранится адрес процедуры обработчика прерывания, который тебе и возвращается, т.е. тебе возвращается (как и положено) не 0000:0084, а другой адрес. Ведь какой смысл передавать тебе то, что и так легко считается? |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |