Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 49

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 43 44 45 46 47 48 < 49 > 50 51 52 53 54 55 .. 528 >> Следующая

CMPXCHG - Сравнение и обмен операндами
CMPXCHG8B - Сравнение и обмен счетверенными словами (8 байтов)
Умножение:
MUL - Беззнаковое умножение
IMUL - Знаковое (целочисленное) умножение
*"." л с'с'п ""-11ла пмипктятя умножения
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
Деление:
DIV - Беззнаковое деление IDIV - Знаковое (целочисленное) деление AAD -
ASCII-коррекция результата деления Изменение разрядности путем расширения
знака:
CBW - Преобразование байта (AL) в слово (АХ)
CWDE - Преобразование слова (АХ) в двойное слово (ЕАХ)
CWD- Преобразование слова (АХ) в двойное слово (DX, АХ)
CDQ - Преобразование двойного слова (ЕАХ) в учетверенное слово (EDX, ЕАХ)
Логические операции NOT - Инверсия операнда (логическое НЕ)
AND - Конъюнкция операндов (логическое И) ^
OR-Дизъюнкция операндов (логическое ИЛИ)
XOR - Неравнозначность операндов (исключающее ИЛИ)
TEST - Логическое сравнение операндов (установка признаков ZF, SF, PF)
Сдвиги
SHL/SAL - Сдвиг влево
SHR-Логический сдвиг вправо
SAR - Арифметический сдвиг вправо
SHLD - Двухоперандный сдвиг влево
SHRD - Двухоперандный сдвиг вправо
ROL - Циклический сдвиг влево
ROR - Циклический сдвиг вправо
RCL - Циклический сдвиг влево через перенос (CF)
RCR - Циклический сдвиг вправо через перенос (CF)
Операции с битами и байтами
ВТ - Проверка бита BTS - Проверка и установка бита BTR - Проверка и сброс
бита ВТС - Проверка и инверсия бита BSF - Прямое сканирование битов BSR -
Обратное сканирование битов See-Условная установка байта
Операции со строками символов LODS - Загрузка символа в аккумулятор STOS
- Запись символа из аккумулятора INS - Ввод символа OUTS - Вывод символа
MOVS - Пересылка символа CMPS - Сравнение символов SCAS - Сканирование
строки символов
В последующих разделах дается описание этих команд. При этом используется
синтаксис команд, принятый для языка Ассемблер:
ОРС <dst>, <src>,
где в качестве ОРС указывается мнемокод команды; dst (destination -
приемник) - адрес первого операнда, на место которого помещается
результат операции; sre (source - источник) - адрес второго операнда.
Таким образом, порядок следования адресов в поле операндов команды
определяет размещение результата. При описании команд приняты следующие
обозначения:
г(8,1б,32)-8-, 16- или 32-разрядный регистр общего назначения;
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
т(8,16,32)-8-, 16- или 32-разрядная ячейка памяти (адресуется байтами
MODR/M, SIB); sreg - сегментный регистр CS, SS, DS, ES, FS или GS;
А - регистр-аккумулятор ЕАХ, АХ или AL (в зависимости от разрядности
операндов).
Большинство команд данного класса выполняет операции над 8-, 16- или 32-
разрядными операндами. Заданная разрядность определяется, как указано в
п. 1.4, режимом работы процессора (16 - для реального режима и режима
виртуального 8086; 16 или 32 - для защищенного режима в зависимости от
значения бита D в дескрипторе) и может меняться с помощью префиксных
байтов.
2.2.1. КОМАНДЫ ПЕРЕСЫЛКИ
Команды этой группы приведены в табл. 2.15. Значения признаков в регистре
EFLAGS при выполнении команд пересылок не изменяются.
Таблица 2.15
Команды пересылок
Синтаксис команды Операция
MOV r/m(8,16,32), r(8,16,32) r(8,16,32) -" r/m(8,16,32)
r(8,16,32), r/m(8,16,32) r/m(8,16,32) ->r(8,16,32)
CMOVcc r/m(8,16,32), r{8,16,32) r(8,16,32) -> г/т(8,16,32),если
(cc)=1
r(8,16,32), r/m(8,16,32) r/m(8,16,32) -> r{8,16,32), если (cc)=1
MOV E AX (AX ,AL),d (16,32) (d16 или d32) -> EAX(AX.AL)
d{16,32), EAX(AX,AL) EAX(AX.AL) -> (d16 или d32)
MOV r/m(8,16,32), im(8,16,32) lm(8,16,32) -> r/m(8,16,32)
MOV sreg, r/m 16 r/m 16 -> sreg sreg -> r/m 16
MOV CRi, r32 r32 -> CRi
r32, CRi CRi -> r32
MOV DRi, r32 r32-> DRi
r32, DRi DRi -"r32
XCHG r(8,16,32), r/m(8,16,32) r(8,16,32)<-> r/m{8,16,32)
EAX(AX), r/m(16,32) EAX(AX) <-> r/m(16,32)
PUSH r/m (16,32) SP - (2или 4) -> SP, r/m(16,32) -" (SP)
im(16,32) SP - (2или 4) -" SP, im(16,32) -"(SP)
POP r/m (16,32) SP
sreg (SP) -> sreg, SP+ (2или 4) -> S
PUSHA AX,CX, DX,BX,SP,BP,SI, Dl) -" стек
POPA стек -> DI,SI,BP,SP,BX,DX,CX,AX
PUSHAD ЕАХ,ЕСХ,EDX,ЕВХ,ESP,EBP,ESI,EDI -" стек
POPAD стек -> EDI,ESI,EBP,ESP,ЕВХ,EDX,ЕСХ,ЕАХ
IN EAX(AX.AL), im8 port(im8) -> EAX(AX.AL)
EAX(AX.AL), DX port(DX) -" EAX(AX.AL)
OUT im8, EAX(AX,AL) EAX(AX.AL) -" port(im8)
DX, EAX(AX,AL) EAX(AX,AL)-> port(DX)
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
Продолжение табл. 2.15
Синтаксис команды Операция
MOVSX г(16,32), r/m8 г32, г/т 16 г/т8 -> г(16,32), расширение знаком
г/т16 -> г32, расширение знаком
MOVZX г(16,32), г/т8 г32, г/т16 г/т8 -> г(16,32), расширение нулями
г/т16 -> г32, расширение нулями
BSWAP г32 г(7-0) -> г{31 -24), г{15-8) -> г(23-16), г(23-16) -> г(15-8),
г(31 -24) -> г(7-0)
XLATB XLAT т8 (ЕВХ + AL) -> AL
LEA г(16,32), т(16,32) ЕА -> г(16,32)
LDS г16, т16:16 г32, т16:32 т16 DS, т16 -> г16 т16 -> DS, т32 -> г32
LES г16, т16:16 г32, т16:32 т16 -> ES, т16 -" г16 т16 -> ES, т32 -> г32
LFS г16, т16:16 г32, т16:32 т16 -> FS, т16 -> г16 т16 -> FS, т32 -> г32
Предыдущая << 1 .. 43 44 45 46 47 48 < 49 > 50 51 52 53 54 55 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed