- •Команды общего назначения
- •1.1.1.Команды ввода-вывода
- •1.1.2.Инструкции работы со стеком
- •1.1.3.Арифметико-логические инструкции
- •1.1.4.Цепочечные операции
- •1.1.5.Команды управления
- •1.1.6.Команды поддержки языков высокого уровня
- •1.1.7.Команды прерываний
- •1.1.8.Команды синхронизации процессора
- •1.1.9.Команды обработки цепочки бит
- •Синтаксис ммх-команд
- •1.1.10.Классификация команд
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, выполняющую то же самое. |