В чем принципиальные преимущества INT против CALL? Разве нельзя использовать CALL вместо INT? Спасибо!
в реальном режиме разницы практически никакой никто не мешает засунуть в стек флаги, прочитать вектор нужного прерывания и сделать дальний call по этому адресу в протмоде в общем случае такой фокус просто не прокатит З.Ы. кстати, с jmp'ом то же самое
INT автоматически сохраняет флаги при вызове. И адрес берет из таблицы прерываний по индексу, указанному в команде, что облегчает его перехват/перенаправление. Инструкции INT - короче, в частности int 03h вообще однобайтный. Использовать CALL вместо INT можно только в реальном режиме. Предварительно вычислив адрес обработчика и сохранив флаги перед вызовом. Если будешь пихать в стек еще и полный адрес возврата, то вообще сможешь обойтись JMP. Это все под ДОС. В защищенном режиме происходит смена привилегий и смена стека, поэтому для получения системных сервисов INT делается на шлюх вызова (CALL GATE).