полезно, когда аппаратное или программное обеспечение отладчика
анализирует выполнение программы.
Первая инструкция,
программное прерывание, гораздо важнее, потому
что она
позволяет программе пользовательского режима(User mode program) выполнять
вызовы к привилегированному коду операционной системы (Operationg System
code).
Рис. 10: Концепция программного прерывания
В системах Linux SWI нужен для выполнения многих операций, реализованных
в ядре (такие как fork, open, socket, ...), которые требуют полных привилегий.
Это делает инструкцию очень важной для написания шеллкода.
Мы увидим много примеров использования в следующих главах, поскольку они
специфичны для конкретной системы.
3.8 Сопроцессорные инструкции
Архитектура ARM была спроектирована таким образом, чтобы быть модульной
и легко расширяемой за счет использования сопроцессоров. В наборе
инструкций определены три типа инструкций
для взаимодействия с
сопроцессорами:
22
Инструкции, используемые для инициирования операции обработки
данных
сопроцессора
Инструкции, используемые для передачи значений в регистры
сопроцессора и из
них
Инструкции, используемые для генерации адресов для сопроцессора
загрузка и
хранение инструкций
Во время выполнения программы каждый сопроцессор получает один и тот же
поток инструкций и игнорирует инструкции ARM и инструкции других
сопроцессоров. Если инструкция не реализована в
аппаратном обеспечении
сопроцессоров, возникает исключение Undefined Instruction exception, и
инструкция может быть эмулирована операционной системой.
Это краткий обзор инструкций сопроцессоров:
Do'stlaringiz bilan baham: