<<
>>

SYSENTER •

SYSENTER - 0F 34 • Быстрый переход к точке входа в коде па уровне 0. Действие: команда SYSENTER предназначена для максимально эффективного перехода к коду нанулевомкольце защиты (CPL=0).
Командаустанавливастрсгистры CS, EIP,SS, ESP значениями, указанными операционной системой в определенных модельно-зависимых регистрах: ® CS - SYSЕNТЕR_СS_МSR; Ш Ё1Р - SYSЕNТЕR_ЕIР_МSR; й SS - 8 + SYSЕNТЕR_СS_МSR); Ш ESP - SYSЕNТЕR_ЕSР_МSR. Команда SYSENTER всегда передает управление коду защищенного режима на CPL = 0. Команда может быть вызвана из всех режимов за исключением реального. Команда требует выполнения следующих условий со стороны операционной системы: И целевой селектор CS должен соответствовать 32-разрядному сегменту кода на нулевом коль- це, отображенному на плоское пространство адресов 0...4 Гбайт с доступом по чтению и вы- полнению; № целевой селектор SS должен соответствовать 32-разрядному сегменту стека кольца 0, отобра- женному на плоское адресное пространство 0...4 Гбайт с доступом по чтению, записи, причем величина этого селектора (селектора SS кольца 0) должна быть равна сумме (CS) + 8.
Операционная система посредством указанных ранее модельно-зависимых регистров внут- ри процессора должна обеспечить необходимые значения для регистров CS, ИР, SS и ESP с тем, чтобы корректно передать управление точке входа кода в кольце защиты 0. Эти регистры до- ступны по чтению и записи посредством команд RDМSR и WRМSR, Адреса модельно-зависимых регистров представлены в табл. П.14. Таблица П.14. Адреса модельно-зависимых регистров

SYSEXIT • SYSEXIT приемник, источник • OF 35 • Быстрый возврат из кода на уровне 0. Действие: команда SYSEXIT предназначена для максимально эффективного перехода к коду на кольце защиты 3 (CPL = 3) из кода на кольце защиты О (CPL = 0).

Команда SYSEXIT устанавливает регистры CS, EIP, SS, ESP значениями, указанными операционной системой в определенных мо- делыю-зависимых регистрах или регистрах общего назначения: ш CS - 16 + SYSЕNTЕR_СS_МSR; ⅜ EIP — значение из регистра EDX; й SS - 24 + SYSЕNТЕR_СS_МSR; ⅜ ESP — значение из регистра ЕСХ. Таблица П. 15. Описание модельно-зависимых регистров

Команда SYSEXIT всегда передает управление коду на кольце 3 (CPL = 3) защищенного режима в рамках плоской модели памяти. Команда может быть вызвана только в защищенном режиме при CPL = 0. Команда требует выполнения следующих условий со стороны операционной системы: целевой селектор CS должен соответствовать 32-разрядному неподчиненному сегменту кода на кольце защиты 3, отображенному на адресное пространство О.,,4 Гбайт, с атрибутами до- ступа по выполнению и по чтению; S! целевой селектор SS должен соответствовать 32-разрядному сегменту стека на кольце 3, ото- браженном на адресное пространство 0...4 Гбайт с атрибутами расширяемости вверх и досту- па по чтению и по записи. Операционная система посредством указанных модельно-зависимых регистров внутри про- цессора должна обеспечить необходимые значения для регистров CS, ЕIР, SS и ESP с тем, чтобы корректно передать управление точке входа кода в кольце защиты 3. Эти регистры доступны по чтению и записи посредством команд RDМSR и WRMSR (табл. П.15). TEST • TEST приемник, источник • А8ib TEST АL,imm8 А9 iw TEST АХ,immlб А9 id TEST ЕАХ,immЗ2 Fб /0 ib TEST r/m8,imm8 F7/Оiw TEST r/тlб,iттlб F7/Оid TEST r/тЗ2,iттЗ2 84 /г TEST r/т8,r8 85 /r TEST r/ml6,rl6 85/г TEST г/тЗ2,гЗ2 • Логическое сравнение. Действие: команда выполняет операцию логического умножения над операндами. Ре- зультат операции формируется во временной памяти, сами операнды не изменяются: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0. Для анализа результата используется флаг ZF, который равен 1, если резуль- тат логического умножения равен нулю.

Флаги: ОF= О СF= О SF= г ZF= г РF= г АF= ? UD2 • UD2 ■ 0F 0В • Генерация исключения недействительного кода операции. VЕRR/VЕRW • VERR/VERW селектор . • 0F 00/4 VЕRRr/ml6 • Определение возможности чтения (записи) из сегмента или всегмент, заданный операндом селектор. Действие: команда проверяет выполнение следующих условий: Я определен ли селектор в таблицах GDT или LDT; й указывает ли дескриптор, адресуемый селектором, на сегмент кода или данных (и ни на ка- кой другой); ⅞ является ли сегмент считываемым (для VERW — записываемым). Затем проверяется уровень привилегий: • если сегмент кода является подчиненным, то поле DPL его дескриптора может иметь любое значение; Ш если сегмент кода не является подчиненным, поле DPLдескрипторадолжно быть больше (или равно) полей CPL и RРL селектора. Если проверка по приведенным выше условиям положительна, то флаг ZF устанавливается в 1, иначе — в 0. Флаги: ZF = r WAIT • WAIT • 9В • Приостановка работы процессора до поступления сигнала от сопроцессора об окончании об- работки последней команды. Машинный код: 9Ь Флаги: СО = С1 = С2 = СЗ = ? WBINVD • WBINVD • OF 09 • Очистка кэш-памяти. Действие: команда очищает кэш-память первого уровня, записывает содержимое кэш-памя- ти второго уровня в основную память и очищает содержимое кэш-памяти второго уровня. WRMSR • WRMSR • OF 30 • Запись в МSR-регистр. Действие: команда проверяет то, что уровень привилегий нуле,вой и что в регистре ЕСХ содер- жится значение, идентифицирующее один из MSR-регистров. Если хотя бы одно из этих усло- вий не выполняется, выполнение команды завершается. Если выполняются оба условия, то зна- чение пары 32-разрядных регистров EDX:EAX пересылается в 64-разрядный MSR-регистр, номер которого задан в регистре ЕСХ. XADD • XADD приемник, источник • OF СО/г XADD r/m8,r8 OF Сl/r XADD r/тlб,rlб OF Cl/r XADD r/m32,r32 • Обмен и сложение операндов. Действие: команда XADD обменивает содержимое операнда приемник с операндом источник, затем формирует сумму их значений в операнде приемник.
Эта команда может использоваться с префиксом LOCK. Флаги: СF - г РF - г АF - г SF - г ZF = г OF « г XCHG • XCHG операнд_l, операнд_2 XCHG АХ,rlб XCHG rlб,АХ XCHG EAX,r32 XCHG r32,EAX XCHG r/m8,r8 XCHG r8,r/m8 XCHG r/тlб,rlб XCHG rlб,r/тlб XCHG r/m32,r32 XCHG r32,r/m32 значениями между операндами. ХLАТ/ХLАТВ • XLAT адрес_таблицы_байтов ХLАТВ • D7 • Преобразование байта. Действие: команда вычисляет адрес в памяти: DS:BX + (AL). Далее команда извлекает байт по этому адресу и помещает его в регистр AL. Несмотря на наличие операнда адрес_таблицы_байтов в команде XLAT, адрес последовательности байтов, из которой будет осуществляться выборка байта для подмены в регистре AL, должен быть предварительно загружен в пару DS:ВХ(ЕВХ). Команда XLAT допускает замену сегмента. XOR • XOR приемник, источник • 34 ib ХОR АL,imm8 35 iw ХОR АХ,immlб 35 id ХОR ЕАХ,immЗ2 80 /б ib ХОR r/m8,imm8 81/6 iw ХОRr/mlб,immlб 81 /6 id ХОR r/mЗ2,immЗ2 83 /б ib ХОRr/mlб,imm8 83 /6 ib XOR r/m32,imm8 30 /r XOR r/m8,r8 31 /r XOR r/ml6,rl6 31 /r XOR r/m32,r32 32 /г ХОR r8,r/m8 33/г ХОRrlб,r/тlб . 33 /r XOR r32,r/m32 • Логическое исключающее ИЛИ. Действие: выполнение операции логического исключающего ИЛИ над парами битов двух операндов: бит результата равен 1, если значения соответствующих битов операндов различны, в остальных случаях бит результата равен 0. Результат помещается в операнд приемник. Флаги: ОF=гСF=гSF = гZF=гРF=гАF = ?
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме SYSENTER •:

  1. Л.О. Доліненко, В.О. Доліненко, С.О. Сарновська. Цивільне право України, 2006
  2. ЦИВІЛЬНЕ ПРАВО УКРАЇНИ
  3. ПЕРЕДМОВА
  4. Частина І ПРОГРАМА КУРСУ «ЦИВІЛЬНЕ ПРАВО УКРАЇНИ»
  5. Розділ І. Загальні положення цивільного права
  6. Тема 1. Поняття цивільного права. Предмет та метод, система цивільного права. Функції та принципи цивільного права
  7. Тема 2. Цивільне законодавство України
  8. Тема 3. Поняття, елементи та види цивільних правовідносин
  9. Тема 4. Здійснення цивільних прав і виконання обов’язків
  10. Тема 5. Захист цивільних прав та інтересів
  11. Тема 6. Об’єкти цивільних прав
  12. Тема 7.ФІЗИЧНІ особи як суб’єкти цивільного права
  13. Тема 8. Юридичні особи