Изменение IVT 8086/88 - PullRequest
       33

Изменение IVT 8086/88

0 голосов
/ 18 декабря 2011

как вы знаете, когда произошло прерывание, 8086 получает код типа прерывания и умножает его на 4, затем проверяет его в IVT.

знаю, что я хочу изменить IVT в 8086, я использую emu8086.*

Что мне для этого сделать?

1 Ответ

2 голосов
/ 22 декабря 2011

Вы, вероятно, уже знаете это: IVT находится в адресе: 0000: 0000 Как вы говорите, смещение каждого вектора рассчитывается путем умножения числа прерываний на 4. Если вы хотите изменить значение одного вектора, то:

  1. отключение прерываний (cli)
  2. Сохранение старого значения вектора при необходимости.
  3. запись смещения и сегмента вашего обработчика прерываний в вектор.
  4. разрешить прерывания (sti)
...