Микропроцессор Intel 486

2.4.2. Команды реального микропроцессора, отсутствующие в учебной модели

CLC – сбросить флаг CF.
STC – установить флаг CF.

CLD – сбросить флаг DF.
STD – установить флаг DF.
Эти две команды применяются при работе с командами обработки строк (цепочек байтов) для указания направления просмотра строк.

CLI – сбросить флаг IF (запретить маскируемые прерывания).
STI – установить флаг IF (разрешить маскируемые прерывания).

INT N – выполнить программное прерывание с номером N.
IRET – выполнить возврат из процедуры обработки прерывания.

JMP Label – выполнить безусловный переход на указанную метку. Это аналог команды GOTO в языках высокого уровня (Бейсик, Фортран, Паскаль, Си).

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

IF условие THEN метка
в языке Бейсик. Команд условного перехода насчитывается 17 штук. В нижеследующей таблице приведены лишь наиболее часто используемые из них:

Название команды Обозначение команды Условие выполнения перехода
Переход, если ноль JZ ZF=1
Переход, если не ноль JNZ ZF=0
Переход, если меньше JC CF=1
Переход, если не меньше JNC CF=0
Переход, если знак есть JS SF=1
Переход, если знака нет JNS SF=0
Переход, если CX=0 JCXZ CX=0

Примеры на использование этих команд будут приведены ниже.

MOVSB, MOVSW

Команды пересылки цепочки байтов (первая из них) или слов (вторая) из области памяти, адресуемой регистрами DS : SI в область, адресуемую регистрами ES : DI. После каждой пересылки содержимое индексных регистров SI и DI автоматически изменяется: если флаг направления DF=0, то содержимое регистров увеличивается на 1 (для первой команды) или на 2 (для второй команды), а если DF=1, то содержимое этих регистров аналогично уменьшается. Следовательно, имеется возможность, выполняя эти команды в цикле, обрабатывать последовательности данных длиной до 64 Кбайт (напоминаем, что SI и DI – 16-разрядные). Каждая такая последовательность данных в терминологии фирмы Intel называется строкой.

Если перед командами поставить префикс REP, то организовывать специальный цикл не нужно – команда обработки строк будет автоматически повторяться до тех пор, пока значение регистра СХ не станет равным нулю (естественно, это значение должно быть предварительно задано).

LODSB, LODSW

Команды загрузки байта (первая) или слова (вторая) из определенной области памяти в регистр AL (для первой команды) или в регистр AX (для второй). Область памяти (строка) адресуется с помощью регистров DS : SI. Содержимое регистра SI автоматически изменяется подобно тому, как описано в предыдущей команде. То же касается использования префикса REP.

STOSB, STOSW

Команды, отличающиеся от предыдущих только тем, что данные передаются в обратном порядке, а именно из регистра AL (или AX соответственно) в память.


Назад Содержание Вперёд