Команды поддержки языков высокого уровня. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команды поддержки языков высокого уровня.

Поиск
Команда Описание
ENTER Размер,Вложенность Подготовка стека для локальных параметров процедуры. Алгоритм: · (EBP) => стек. · (ESP) => промежуточная переменная fp. Если Вложенность не 0, то коррекция EBP по режиму адресации и (EBP) => стек. · (fp) => EBP. · (fp) => стек. · ESP = (ESP) - Размер
LEAVE LEAVE from procedure – выход из процедкры. Выполгяет действия, обратные комаде ENTER, приводя стек в исходное состояние: · (EBP) => ESP – восстановление состояния стека до процедуры. · EBP восстанавливается из стека.
BOUND РегистрИндекса, ГраницыМассива BOUND check array BOUNDs – контроль нахождения индекса в гоаницах массива. РегистрИндекса содержит текущий индекс массива, а второй операнда определяет в памяти 2 слова или 2 двойных слова. Первое считается минимальным значением индекса, а второе - максимальным. Если текущий индекс оказывается вне границ, то генерируется команда INT 5. Используется для контроля нахождения индекса в заданных рамках, что является важным средством отладки.

Команды прерываний.

Команда Описание
INT НомерПрерывания INTerrupt – прерывание. Вызов прерывания с заданным номером. Алгоритм: · В стек содержимое регистра флагов. · В стек полный адрес возврата. Сбрасывается флаг TF. · Косвенный переход через элемент дескрипторной таблицы прерываний по НомерПрерывания.
INTO INTerrupt if Overflow – прерывание, если переполнение. Вызов прерывания с заданным номером. Алгоритм: · Если флаг переполнения OF = 0, ничего не делается. · Если флаг переполнения OF = 1, то вызов команды INT.
IRET Interrupt RETurn – возврат из прерывания. Алгоритм: · Если флаг NT = 0, то возврат в прерванную программу. · Если флаг NT = 1, то переключение задач. Команда извлекает из стека сохраненные в нем адрес возврата и регистр флажков. Бит уровня привилегий будет модифицироваться только в том случае, если текущий уровень привилегий равен 0.

Команды синхронизации процессора.

Команда Описание
HLT HaLT – останов. Останавливает процессор. Из него процессор может быть выведен внешним прерыванием или перезагрузкоц.
LOCK LOCK signal prefix – блокировка. Представляет собой префикс блокировки шины. Он заставляет процессор сформировать сигнал LOCK# на время выполнения находящейся за префиксом команды. Этот сигнал блокирует запросы шины другими процессорами в мультипроцессорной системе.
NOP No Operanion – нет операции. Холостая команда. Не производит никаких действий.
WAIT WAIT – ожидание. Синхронизация с сопроцессором, останавливает основной процессор до завершение операции в сопроцессоре.. Большинство команд сопроцессора автоматически вырабатывают команду.FWAIT, выполняющую то же самое.

Команды обработки цепочки бит.

Команда Описание
BSFприемник, источник Bit Scan Forward – побитовое сканирование вперед. Проверка наличия битов 1 в источнике Номер первого бита, находящегося в состоянии 1, помещается в приемник, флажок ZF сбрасывается в 0. Если источник содержит 0, то флаг ZF=1, а содержимое приемника не определено.
BSR приемник, источник Bit Scan Revers – побитовое сканирование назад. Аналогична BSF. Разница в направлении просмотра..
BT источник, индекс Bit Test – проверка битов. Извлечение бита (с номером индекс) из источника, помещение в флаг CF..
BTC источник, индекс Bit Test and Complement – проверка битов и инверсия. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, инверсия.
BTR источник, индекс Bit Test and Reset – проверка битов и сброс в 0. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, сброс в 0.
BTS источник, индекс Bit Test and Set – проверка битов и установка в 1. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, установка в 1.

Команды управления защитой.

Команда Описание
LGDT источник_48 Load Global Descriptor Table Загрузка 48-битного регистра глобальной дескрипторной таблицы GDTR из памяти. Источник_48 указывает на 6-байтную величину. Это 16 бит размера и 32 бита базового адреса начала таблицы GDT.
SGDT приемник_48 Store Global Descriptor Table Сохранить регистр GDTR в памяти.
LIDT источник_16 Load Interrupt Descriptor Table Загрузка 16-битного регистра дескрипторной таблицы прерываний IDTR из памяти.
SIDT приемник_16 SIDT Сохранить регистр IDTR в памяти.
LLDT источник_16 Load Local Descriptor Table Загрузка 16-битного регистра локальной дескрипторной таблицы LLDR значением селектора глобальной дескрипторной таблицы GDT из памяти (16 бит).
SLDT приемник_16 Store Local Descriptor Table Сохранить регистр LDTR в регистре или памяти (16 бит).
LMSW источник_16 Load Machine Status Word Загрузка слова состояния машины MSW (младшие 16 бит регистра CRO) значением 16-битного слова памяти или регистра.
SMSW приемник_16 Store Machine Status Word Сохранить MSW в регистре или памяти (16 бит).
LTR источник_16 Load Test Register Загрузка регистра задачи TR селектором сегмента Tss задачи из регистра или памяти (16 бит).
STR приемник_16 Store Test Register Сохранить регистр задачи TR в регистре или памяти (16 бит).
LAR приемник, источник Load Access Rights byte Загрузка в приемник байта прав доступа, дескриптор которого задан в источнике.
LSL приемник, источник Losd Segment Limit Загрузка в приемник лимита сегмента, дескриптор которого задан в источнике.
ARPL приемник, источник Adjust RPL field of selector – настройка поля RPL селектора. Алгоритм: · Если RPL_прием > RPL_источ, то флаг ZF=0. · Если RPL_прием < RPL_источ, то флаг ZF=1, RPL_прием = RPL_источ.
VERR сегмент VERify for Reading – проверка сегмента на чтение. Алгоритм: · Проверка определения сегмента в таблицах CDT или LDT. · Проверка, указывет ли дескриптор сегмента на сегмент кода или данных. · Проверка, является ли сегмент записываемым. · Проверка уровня привилегий.. · Если проверки положительны, то флаг ZF=1, иначе ZF=0.
VERW сегмент VERify for Writing – проверка сегмента на чтение. Алгоритм: · Проверка определения сегмента в таблицах CDT или LDT. · Проверка, указывет ли дескриптор сегмента на сегмент кода или данных. · Проверка, является ли сегмент считываемым. · Если проверки положительны, то флаг ZF=1, иначе ZF=0.


Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 251; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.223.185 (0.009 с.)