Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > вектор прерывания для i80188


Автор: Стас123 26.11.2011, 12:43
Как известно, вектор обработки немаскируемого прерывания для этого процессора находится по адресам 0008-000b, в которых должны быть прописаны сегмент и адрес (два слова = 4 байта).
Вопрос, почему после считывания первого слова проц возвращается на исходный адрес, и только затем считывает второе слова из вектора ? Вот конкретный кусок:

сегмент)адрес - код

0)0008  70
0)0009  e0
0)000a  00
0)000b   f0
.....
.....
f)e06a   f4
f)e06b   90
.....
f)e070    xx

Процессор после выполнения f4 по адресу e06a находится в останове, ожидая прерывания.
При его поступлении, идёт на адрес 0008 и считывает новый адрес (e070), затем ВОЗВРАЩАЕТСЯ на e06b, затем идёт на 000a и считывает новый сегмент (f000), затем благополучно заносит всё что нужно в стек и переходит на f)e070. 

Т.е. всё вроде как надо работает, но в чём смысл этого "перескока" ? Я туда пока пустой код поставил (90), а что там ДОЛЖНО быть ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)