Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Команды общего назначения.doc
Скачиваний:
19
Добавлен:
25.09.2019
Размер:
279.55 Кб
Скачать

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

Команда

Описание

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. Используется для контроля нахождения индекса в заданных рамках, что является важным средством отладки.

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

Команда

Описание

INT НомерПрерывания

INTerrupt – прерывание.

Вызов прерывания с заданным номером. Алгоритм:

В стек содержимое регистра флагов.

В стек полный адрес возврата.

Сбрасывается флаг TF.

  • Косвенный переход через элемент дескрипторной таблицы прерываний по НомерПрерывания.

INTO

INTerrupt if Overflow – прерывание, если переполнение.

Вызов прерывания с заданным номером. Алгоритм:

Если флаг переполнения OF = 0, ничего не делается.

Если флаг переполнения OF = 1, то вызов команды INT.

IRET

Interrupt RETurn – возврат из прерывания. Алгоритм:

Если флаг NT = 0, то возврат в прерванную программу.

Если флаг NT = 1, то переключение задач.

Команда извлекает из стека сохраненные в нем адрес возврата и регистр флажков. Бит уровня привилегий будет модифицироваться только в том случае, если текущий уровень привилегий равен 0.

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

Команда

Описание

HLT

HaLT – останов.

Останавливает процессор. Из него процессор может быть выведен внешним прерыванием или перезагрузкоц.

LOCK

LOCK signal prefix – блокировка.

Представляет собой префикс блокировки шины. Он заставляет процессор сформировать сигнал LOCK# на время выполнения находящейся за префиксом команды. Этот сигнал блокирует запросы шины другими процессорами в мультипроцессорной системе.

NOP

No Operanion – нет операции.

Холостая команда. Не производит никаких действий.

WAIT

WAIT – ожидание.

Синхронизация с сопроцессором, останавливает основной процессор до завершение операции в сопроцессоре.. Большинство команд сопроцессора автоматически вырабатывают команду.FWAIT, выполняющую то же самое.