←предыдущая следующая→
1 2 3 4 5 6 7 8
сброс бита.
Команда BTR проверяет указанный бит, копирует его в CF и
сбрасывает найденный бит. Это новая команда, специфичная для
МП 80386.
BTS Проверка и установка бита.
Команда BTS проверяет указанный бит, копирует его в CF и
устанавливает в найденном бите значение 1. Это новая команда,
специфичная для МП 80386.
CALL Вызов процедуры.
Команда CALL передает управление из одной точки программ-
ного сегмента в другую. Эти точки могут располагаться в одном
и том же программном сегменте (ближний переход) или принадле-
жать разным сегментам (дальний переход). Перед собственно пе-
редачей управления команда CALL сохраняет в стеке адрес следу-
ющей за CALL команды и текущее содержимое регистра EIP.
Команды CALL могут быть относительными, прямыми и косвен-
ными. В косвенной команде абсолютный адрес перехода указывает-
ся одним из двух способов: (1) МП извлекает адрес приемника из
ячейки памяти, определенной в команде; (2) программа переходит
- 14 -
в точку адрес которой указан в одном из регистров общего наз-
начения.
CBW Преобразование байта в слово.
Эта команда расширяет значение бита знака в старшую часть
более длинного регистра так, чтобы арифметические операции над
содержимым этого регистра давали правильные результаты.
CWD Преобразование слова в двойное слово.
Действие команды аналогично команде CBW.
CLC Сброс флага переноса.
Команда сбрасывает флаг CF.
CLD Сброс флага направления.
Команда сбрасывает флаг DF. Если флаг DF сброшен, автома-
тическая индексация будет выполняться с инкрементом. Автомати-
ческая индексация используется командами обработки строк.
CLI Сброс флага прерываний.
Если текущий уровень привилегий по крайней мере столь же
высок, как уровень привилегий ввода-вывода, команда сбрасывает
флаг прерываний.
CLTS Сброс флага переключения задачи в управляющем ре-
гистре 0.
Команда сбрасывает флаг TS в CR0. В МП 80386 флаг TS ус-
танавливается каждый раз при переключении задачи. Команда ис-
пользуется в системном программировании. Она представляет со-
бой привилегированную команду, выполняемую только на нулевом
уровне привилегий.
CMC Инвертирование флага переноса.
Команда инвертирует флаг переноса CF.
CMP Сравнение.
Команда выполняет вычитание операнда-источника из операн-
да-приемника. В соответствии с результатом вычитания команда
устанавливает состояние флагов, но не изменяет сами операнды.
CMPS Сравнение строковых операндов.
Ассемблер всегда транслирует команду CMPS как одну из
- 15 -
CMPSB, CMPSW, CMPSD. Эти команды предназначены только для
операций над строками. Они сравнивают по одному элементу каж-
дой строки, причем элементами могут быть байт, слово или двой-
ное слово. Элементы строк адресуются через регистры ESI и EDI.
После каждой строковой операции ESI и/или EDI автоматически
получают положительное или отрицательное приращение и указыва-
ют на следующие элементы строк. Если DF=0, в индексных регист-
рах осуществляется инкремент, если DF=1 - декремент. В зависи-
мости от результата вычитания строкового элемента по адресу
ES:EDI из строкового элемента по адресу DS:ESI устанавливаются
флаги результата. Если команда модифицирована с помощью пре-
фиксов, МП выполняет сравнение текущего элемента строки с со-
держимым регистра EAX или его части (AL или AX).
CMPSB Сравнение строковых байтов.
CMPSW Сравнение строковых слов.
CMPSD Сравнение строковых двойных слов.
CDQ Преобразование двойного слова в четверное.
CWDE Преобразование слова в двойное слово с расширением.
DAA Десятичная коррекция в регистре AL после сложения.
Команда корректирует результат сложения двух правильных
упакованных десятичных операндов в регистре AL. Эта команда
должна всегда следовать за сложением двух пар упакованных де-
сятичных чисел, чтобы получить в результате пару правильных
упакованных десятичных цифр.
DAS Десятичная коррекция в регистре AL после вычитания.
Команда DAS аналогична команде DAA за исключением, что
коррекция выполняется путем вычитания 6 из полубайтов регистра
AL вместо прибавления 6.
DEC Декремент на 1.
Команда вычитает 1 из операнда приемника. Состояние флага
CF не изменяется.
DIV Деление целых чисел без знака.
Команда выполняет деление числа без знака в аккумуляторе
- 16 -
на операнд-источник. Размер делимого в битах в два раза больше
размера делителя. Если делитель равен 0, или если частное не
помещается в назначенный регистр, возбуждается прерывание 0.
ENTER Создание кадра стека для параметров процедуры
Команда создает кадр стека, который можно использовать
для реализации правил языков высокого уровня с блочной струк-
турой. Команда LEAVE в конце процедуры выполняет обратные
действия.
Команда имеет два параметра. Первый определяет число бай-
тов динамической памяти, выделяемых в стеке для вызванной
программы. Второй параметр соответствует лексическому уровню
вложенности программы (от 0 до 31). Этот уровень определяет,
сколько наборов указателей кадра стека копируются центральным
процессором в новый кадр стека из текущего кадра.
ESC Расширение процессора
Арифметический сопроцессор предоставляет расширение
системы команд МП 80386. Сопроцессор поддерживает высокоточные
вычисления как целочисленные, так и с плавающей точкой и, кро-
ме того, содержит набор полезных констант, ускоряющих вычисле-
ния. Сопроцессор работает параллельно с центральным процессо-
ром, обеспечивая таким образом высокую производительность.
Команды сопроцессора включаются в общий поток команд,
составляющих программу для МП 80386. Система выполняет команды
сопроцессора в том порядке, в котором они появляются в потоке.
HLT Останов
Команда прекращает выполнение любых команд и переводит МП
в состояние останова. Немаскируемые прерывания, операция за-
пуска и разрешенные прерывания возобновляют работу процессора.
Команда HLT обычно является последней командой в последова-
тельности команд останова системы, например для сохранения
состояния процесса после обнаружения сбоя питания.
IDIV Знаковое деление
Команда выполняет знаковое деление. Делимому, частному и
остатку неявно назначаются определенные регистры, в то время
как местонахождение делителя указывается явным образом. По
форме делителя определяется, какие регистры должны использо-
ваться. Если делитель равен нулю или частное слишком велико
для регистра-приемника, возбуждается прерывание 0.
- 17 -
IMUL Знаковое целочисленное умножение
Команда выполняет операцию знакового целочисленного умно-
жения. Команда имеет три варианта.
1. Однооперандная форма. Операнд может быть байтом, сло-
вом
←предыдущая следующая→
1 2 3 4 5 6 7 8
|
|