PREFETCHTO/PREFETCHT1/PREFETCHT2/PREFETCHNTA •
Таблица П. 12. Условия завершения повторения цепочечных команд |
Выяснить, какое именно условие привело к завершению выполнения цепочечной команды, можно, анализируя значение в регистре ЕСХ (командой J ЕСХZ) или проверяя флаг ZF (командой 32, JNZилиJNЕ). Флаги: не изменяются (за исключением случая использования префиксов с командами СМРS и SCAS, которые устанавливают флаги в регистре EFLAGS). RET • RET RET число • СЗ (ret — близкий возврат в вызывающую процедуру); СВ (ret — дальний возврат в вызывающую процедуру); С2 ilб (ret ilб — близкий возврат с выталкиванием ilб байт из стека); САilб (ret 116 — дальний возврат с выталкиванием il6 байт из стека) • Ближний (дальний) возврат из процедуры. Действие: передача управления по адресу, расположенному на вершине стека. Этот адрес обычно помещается в стек командой CALL, его значение соответствует команде, следующей за командой CALL. Необязательный операнд число определяет количество байтов стека, которые бу- дут вытолкнуты после выталкивания адреса возврата. Команда RET используется для выполне- ния трех вариантов возврата управления. ⅜ Близкий возврат — возврат управления вызывающей процедуре в пределах текущего сегмен- та кода (внутрисегментный возврат). При этом из вершины стека выталкивается значение в регистр EIP. Регистр CS не изменяется. Процессор продолжает выполнение кода в том же сегменте, но по другому смещению. Дальний возврат — возврат управления вызывающей процедуре, расположенной в отличном от текущего сегменте кода (межсегментный возврат). При этом из вершины стека последова- тельно выталкиваются значения в регистры EIP и CS. Процессор продолжает выполнение кода в другом сегменте. Я Дальний возврат между уровнями привилегий — дальний возврат управления коду на уров- не привилегий, отличном от текущего. Этот вид возврата может быть выполнен только в за- щищенном режиме. Его механизм подобен механизму дальнего возврата за исключением того, что процессор следит за уровнями привилегий и правами доступа к сегментам кода и стека, которым возвращается управление для определения возможности подобной передачи. Ко- манда RET очищает регистры DS, ES, FS и GS, если они ссылаются на соответствующие сегмен- ты, недоступные иа новом уровне привилегий. Так как при межуровневом возврате управ- ления производится переключение стека, то команда RET также производит загрузку этих регистров из стека. Если в вызываемую процедуру передавались параметры, то при возврате в команде RET необходимо указать параметр число для их удаления. ROL/ROR • ROL/ROR операнд, количество_сдвиrов • DO /О RОL r/m8,l D2/0 RОL r/m8,СL C0/0ib RОLr/m8,imm8 ■ Dl/0 RОL r/mlб,l DЗ/0 RОL r/ml6,СL С1 /0 ib RОL r/шlб,imm8 D1 /0 ROL r/m32,l DЗ/0 RОL r/mЗ2,СL Сl /0 ib RОL r/mЗ2,imm8 DO /1 RОRr/m8,l D2 /1 RОR r/m8,СL СО/lib RОR r/m8,imm8 D1 /1 RОR r/mlб,l DЗ/1 RОR r/тlб,СL Сl/lib RОR r/тlб,iтт8 D1 /1 RОR r/тЗ2,l DЗ/1 RОR r/mЗ2,СL Сl/lib RОR r/тЗ2,iтт8 • Циклический сдвиг операнда влево (вправо). Действие: каждый раз при циклическом сдвиге разрядов операнда влево (вправо) его стар- ший выдвигаемый бит вдвигается в операнд справа (слева) и становится одновременно значени- ем младшего (старшего) бита операнда и флага переноса CF. Флаги: СF= г ОF= ?rSF= rZF = г РF= г АF = ? Флаг OF представляет интерес, если сдвиг осуществляется на один разряд. При сдвиге на не- сколько разрядов его значение не определено (поэтому обозначен ?r) Ло значению флага OF можно судить о факте изменения знакового (старшего) разряда операнда: ⅞ OF = 1, если после операции сдвига значения флага CF и старшего бита операнда различны; iS OF = 0, если после операции сдвига значения флага CF и старшего бита операнда совпадают. RSM • RSM • OF АА • Возврат процессора из S-режима с восстановлением контекста. Действие: команда проверяет контекст прерванной программы на предмет выполнения сле- дующих условий: • в регистре CRO недопустимаякомбинация значений битов; Ss установлен любой из зарезервированных битов в регистре СR4; начало области памяти, с которой работает процессор в S-режиме, не выровнено на границу, кратную 32 Кбайт. Если хотя бы одно из условий выполняется, процессор переходит в состояние ожидания. Если ни одно из условий не выполняется, происходит возврат из S-режима и восстановление контекста из определенной области памяти. Данная операция напоминает восстановление контекста при пе- реключении из вложенной задачи. Флаги: изменяются в соответствии с содержимым регистра EFLAGS восстанавливаемого кон- текста. SAHF • SAHF ■ ' • 9Е • Загрузка регистра флагов EFLAGS/FLAGS изрсгистра АН. Действие: команда загружает значение из младшего байта регистра АН в регистр EFLAGS/FLAGS. При этом флаги SF, ZF, AF, PF и CF инициализируются битами 7, 6, 4, 2, и 0 регистра АН. Биты 1,3 и 5 регистров EFLAGS/FLAGS не изменяются, то есть остаются равными значениям 1, 0 и 0 соответ- ственно. Флаги: SF = r ZF = r AF = r PF = r ОF = r SAL/SAR • SAL/SAR операнд, количество_сдвигов • DO /4 SAL r/m8,l D2/4 SАL r/m8,СL СО /4 ib SАL r/m8,imrп8 Dl /4 SАL r/шlб,l DЗ/4 SАL r/mlб,СL ■ С1 /4 ib SАL r/mlб,imm8 Dl/4 SАL r/mЗ2,l DЗ/4 SАL r/mЗ2,СL Сl /4 ib SАL r/mЗ2,imm8 DO /7 SAR r/m8,l D2/7 SAR r/m8,СL СО/7ib SAR r/m8,imm8 01 /7 SAR r/шlб,l DЗ /7 SAR r/mlб,СL Сl /7 і'b SAR r/тlб,iшт8 Dl /7 SAR r/mЗ2,l DЗ/7 SAR r/mЗ2,СL Сl/7ib SAR r/тЗ2,iтш8 • Арифметический сдвиг операнда влево (вправо). Действие: сдвиг всех битов операнда операнд влево (вправо) на количество разрядов, указан- ных операндом количество_сдвигов, при этом выдвигаемый слева (справа) бит становится значе- нием флага переноса CF. Одновременно для команды SAL справа в операнд вдвигается нулевой бит. Для команды SAR по мере сдвига вправо освобождающиеся места заполняются значением знакового разряда. Флаги: СF = rОF = ?rSF= г ZF = г PF= г AF = ? Флаг OF представляет интерес только для команды SAL в случае, если сдвиг осуществляется на один разряд. При сдвиге на несколько разрядов его значение те определено (поэтому обозна- чен ?r). По значению флага OF можно судить о факте изменения знакового (старшего) разряда операнда: ⅞ если OF = 1, то текущее значение флага CF и значения выдвигаемого слева бита операнда раз- личны; ⅜ если OF = 0, то текущее значение флага CF и значения выдвигаемого слева бита операнда со- впадают. В отличие от других команд сдвига, команда SAR всегда сбрасывает в ноль флаг OF в операци- ях сдвига на один разряд. SBB • SBB операнд_1, операнд_2 • 1C ib SBB АL,imm8 lDiw SВВАХ,imml6 ID id SВВЕАХ,immЗ2 80/Зib SBB r/m8,imm8 81/Зiw SBB r/тl6,iттl6 ' 81 /3 id SBB r/тЗ2,iттЗ2 83 /3 ib SBB r/тlб,iтт8 83 /3 ib SBB r/тЗ2,iтт8 18 /г SВВr/т8,r8 19 /r SBB r/тlб,rlб - 19 /г SBB r/тЗ2,rЗ2 IA/r SВВr8,r/т8 IB/r SBB rlб,r/тlб 1В/г SBB rЗ2,r/тЗ2 • Вычитание сзаемом. Действие: операнд_l = операнд_1 - (операнд_2 + CF). Состояние флага CF представляет собой заем от предыдущего вычитания. Команда SBB пе различает знаков операндов. Вместо этого про- цессор устанавливает флаги OF и CF, чтобы идентифицировать фактзаема для знакового и беззна- кового операндов. Флаг SF отражает знак результата (состояние его старшего бита). Флаги: CF = r OF = r SF = r ZF = r PF = r AF = r
Еще по теме PREFETCHTO/PREFETCHT1/PREFETCHT2/PREFETCHNTA •:
- Л.О. Доліненко, В.О. Доліненко, С.О. Сарновська. Цивільне право України, 2006
- ЦИВІЛЬНЕ ПРАВО УКРАЇНИ
- ПЕРЕДМОВА
- Частина І ПРОГРАМА КУРСУ «ЦИВІЛЬНЕ ПРАВО УКРАЇНИ»
- Розділ І. Загальні положення цивільного права
- Тема 1. Поняття цивільного права. Предмет та метод, система цивільного права. Функції та принципи цивільного права
- Тема 2. Цивільне законодавство України
- Тема 3. Поняття, елементи та види цивільних правовідносин
- Тема 4. Здійснення цивільних прав і виконання обов’язків
- Тема 5. Захист цивільних прав та інтересів
- Тема 6. Об’єкти цивільних прав
- Тема 7.ФІЗИЧНІ особи як суб’єкти цивільного права
- Тема 8. Юридичні особи
- Тема 9. Держава як суб’єкт цивільного права. Територіальні громади та Автономна Республіка Крим як суб’єкти цивільного права
- Тема 10. Правочини: поняття, види. Умови чинності правочину
- Тема 11. Представництво і довіреність
- Тема П.Строки. Позовна давність
- Нормативний матеріал:
- Література
- Розділ ІІ Особисті немайнові права фізичних осіб