Значение ‘vector’ в контексте asm

#assembly #linux-kernel #x86 #system-calls #terminology

#сборка #linux-ядро #x86 #системные вызовы #терминология

Вопрос:

Для чего-то вроде:

 int $0x80
  

Я понимаю, что он выполняет int инструкцию для значения целевого операнда 0x80 или 128 . И, если я правильно понимаю, 128 это системный вызов, и он выполнит вызов, который хранится в eax . Однако, в чем смысл vector здесь?

Операнд назначения определяет вектор от 0 до 255, закодированный как 8-разрядное промежуточное значение без знака.

Почему бы просто не использовать это слово number здесь? Есть ли здесь конкретное значение vector (и я полагаю, что оно отличается от значения в C или математике).

Комментарии:

1. Позвольте мне погуглить это для вас: whatis.techtarget.com/definition/interrupt-vector . Или, в частности, для x86, исторически таблица указателей обработчика прерываний называлась IVT en.wikipedia.org/wiki/Interrupt_vector_table . Защищенный режим использует таблицу «descriptor», которая содержит метаданные помимо указателя.

2. Что касается этимологии, «вектор» имеет смысл: это направление, в котором нужно двигаться, куда отправлять выполнение.

3. Из тома Intel по базовой архитектуре , раздел 6.4 Векторы и прерывания: «Каждое прерывание и исключение в IDT идентифицируются с номером, называемым вектором».

Ответ №1:

Термин vector в этом типе низкоуровневого программного контекста представляет собой список адресов, векторов. Часто основано на прерываниях / исключениях. Итак, обработчик для прерывания 5 является 5-м (ну, 6-м иногда прерывания начинаются с 0 или 1 (обычно не специфично для x86)).

Таким образом, значение int 0x80 само по себе не является вектором, но существует векторная таблица, и смещение 0x80 в этой таблице является адресом обработчика для этого прерывания. Это позволяет использовать элемент фиксированного размера в удобной для поиска таблице, но размер обработчика может варьироваться по размеру.

Было бы правильно вызвать это прерывание 128, но обработчик основан на векторной таблице. Что является другим словом для обозначения адреса.