Jump to content

INT (инструкция x86)

INT — это инструкция языка ассемблера для x86 процессоров , генерирующая программное прерывание . Он принимает номер прерывания, отформатированный как байтовое значение. [1]

На языке ассемблера инструкция записывается так:

INT X

где X — это программное прерывание , которое должно быть сгенерировано (0–255).

Как это принято в машинной двоичной арифметике, номера прерываний часто записываются в шестнадцатеричной форме, что может обозначаться префиксом 0x или суффиксом h . Например, INT 13H сгенерирует 20-е программное прерывание функции, на которую указывает 20-й вектор в таблице прерываний (0x13 — это девятнадцать (19) в шестнадцатеричной записи, а отсчет начинается с 0), вызывая выполнение .

INT широко используется в реальном режиме . В защищенном режиме INT является привилегированной инструкцией . [1]

Реальный режим [ править ]

При генерации программного прерывания процессор вызывает одну из 256 функций, на которые указывает таблица адресов прерываний, которая находится в первых 1024 байтах памяти в реальном режиме (см. Вектор прерываний ). Таким образом, вполне возможно использовать команду дальнего вызова для запуска функции прерывания вручную после нажатия флагового регистра.

Примером полезного программного прерывания DOS было прерывание 0x21. Вызывая его с различными параметрами в регистрах (в основном ah и al), вы можете получить доступ к различным операциям ввода-вывода, строковому выводу и многому другому. [2]

Большинство систем Unix и их производных не используют программные прерывания , за исключением прерывания 0x80, используемого для выполнения системных вызовов . Это достигается путем ввода 32-битного значения, соответствующего функции ядра, в регистр EAX процессора и последующего выполнения INT 0x80.

INT3 [ править ]

Инструкция INT3 — это однобайтовая инструкция, определенная для использования отладчиками для временной замены инструкции в работающей программе с целью установки точки останова кода . Более общие инструкции INT XXh кодируются двумя байтами. Это делает их непригодными для использования в инструкциях исправления (длина которых может составлять один байт); см . СИГТРАП .

Код операции для INT3: 0xCC, в отличие от кода операции для INT немедленно8 , который 0xCD immediate8. Поскольку посвященный 0xCC код операции имеет некоторые необходимые специальные свойства для отладки, которые не используются обычным двухбайтовым кодом операции для INT3, ассемблеры обычно не генерируют общий код операции. 0xCD 0x03 код операции из мнемоники. [1]

ВТО [ править ]

Инструкция INTO — это еще одна однобайтовая инструкция. Это условное прерывание , которое запускается, когда во время выполнения этого кода операции установлен флаг переполнения. Это неявно указывает на прерывание №4.

Код операции для INTO: 0xCE, однако он недоступен в режиме x86-64.

См. также [ править ]

Ссылки [ править ]

  1. ^ Jump up to: а б с Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32 (PDF) . Том. 2. Корпорация Интел . Март 2024. с. 3-520 . Проверено 23 мая 2024 г.
  2. ^ Определение: int 21
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9c3d559c9f9162ff4f4970a24cceb3f1__1718115000
URL1:https://arc.ask3.ru/arc/aa/9c/f1/9c3d559c9f9162ff4f4970a24cceb3f1.html
Заголовок, (Title) документа по адресу, URL1:
INT (x86 instruction) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)