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

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

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

регистре АХ в следующем виде: (АН) = 00000110, (AL) = 00000111
(соответственно 6 и 3 в двоично-десятичном коде). Команда AAD, в отличие
от AAA, AAS, ААМ, выполняется перед командой DIV. При этом двоично-
десятичное число, старший десятичный разряд которого расположен в
регистре АН, а младший - в регистре AL, преобразуется таким образом,
чтобы после команды DIV содержимое AL, АН представляло младший и старший
десятичные разряды частного в неупакованной двоично-десятичной форме.
Команды DAA и DAS осуществляют коррекцию результата сложения и вычитания
чисел в упакованной двоично-десятичной форме. При этом старшая и младшая
тетрады байта
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
содержат двоичные коды старшего и младшего разряда двухразрядного
десятичного числа. Например, число 63 в данной форме будет представлено в
регистре AL кодом 011 ОО011. После сложения упакованных двоично-
десятичных чисел 63=0110 0011 и 18 = 00011000 в регистре AL будет получен
код 01111011, который после выполнения команды DAA преобразуется в
двоично-десятичную форму 10000001 = 81. При выполнении команд DAA и DAS
учитывается значение признака переноса между тетрадами AF. После их
выполнения устанавливается AF = 0. Следует отметить, что при
использовании двоично-десятичного представления чисел соответствующие
команды коррекции должны выполняться и после команд INC, DEC.
Команда NEG изменяет знак операнда, преобразуя его в дополнительный код.
Комплексная команда XADD осуществляет обмен содержимым между регистром и
регистром или ячейкой памяти, после чего выполняет их сложение, результат
которого размещается в регистре или ячейке памяти.
Данная группа команд включает также комплексные команды
сравнения/пересылки CMPXCHG, CMPXCHG8B. Команда CMPXCHG производит
сравнение содержимого аккумулятора (AL, АХ или ЕАХ) и заданного в команде
регистра или ячейки памяти г/т. В случае их равенства устанавливается
значение признака ZF = 1, и содержимое регистра или ячейки памяти
пересылается в 8-, 16- или 32-разрядный регистр, указанный в команде. В
случае неравенства устанавливается значение ZF = 0, и содержимое регистра
или ячейки памяти r/m пересылается в аккумулятор AL, АХ или ЕАХ (в
зависимости от заданной разрядности). Команда CMPXCHG8B оперирует с 8-
байтными (счетверенными) словами. Она сравнивает значение счетверенных
слов, хранящихся в паре регистров EDX.ECX и адресованной ячейке памяти.
При их равенстве устанавливается значение ZF = 1, и по указанному адресу
в ячейку памяти пересылается содержимое пары регистров ECX:EDX. При
неравенстве устанавливается значение ZF = 0, и содержимое адресованной
ячейки памяти пересылается в пару регистров EDX:ECX. Отметим, что при
выполнении команды CMPXCHG производится установка всех признаков в
соответствии с результатом сравнения, а при выполнении команды CMPXCHG8B
устанавливается только признак ZF (см. табл. 2.17).
2.2.3. КОМАНДЫ ЛОГИЧЕСКИХ ОПЕРАЦИЙ И СДВИГОВ
Команды этой группы приведены в табл. 2.18. Установка признаков по
результатам и> выполнения указана в табл. 2.17.
Таблица 2.18
Команды логических операций и сдвигов
Синтаксис команды Операция
AND r/m(8,16,32), г(8,1б,32) r(8,16,32), r/m(8,16,32) r/m(8,16,32),
im(8,16,32) r/m{16,32), im8 EAX(AX.AL), im32(16,8) r/m(8,16,32) AND
r(8,16,32) -> r/m(8,16,32) r(8,16,32) AND r/m{8,16,32) -> r(8,16,32)
r/m(8,16,32) AND im(8,16,32) -> r/m(8,16,32) r/m(16,32) AND 1т8(знак) ->
r/m(16,32) EAX(AX.AL) AND im32(16,8) -> EAX(AX.AL)
OR r/m(8,16,32), r(8,16,32) r(8,16,32), r/m(8,16,32) r/m(8,16,32),
im(8,16,32) r/m(16,32), im8 EAX(AX.AL), im32(16,8) r/m(8,16,32) OR
r(8,16,32) -> r/m(8,16,32) r(8,16,32) OR r/m(8,16,32) -> r(8,16,32)
r/m(8,16,32) OR im(8,16,32) -> r/m(8,16,32) г/т(1б,32) OR im8(3HaK) ->
r/m(16,32) EAX(AX.AL) OR im32(16,8) -> EAX(AX.AL)
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ
Продолжение табл. 2.18
Синтаксис команды Операция
XOR r/m(8,16,32), г(8,16,32) г(8,16,32), r/m(8,16,32) r/m(8,16,32),
im(8,16,32) r/m( 16,32), im8 EAX(AX.AL), im32(16,8) r/m(8,16,32) XOR
r(8,16,32) -> r/m(8,16,32) r(8,16,32) XOR r/m(8,16,32) -" r(8,16,32)
r/m(8,16,32) XOR im(8,16,32) -> r/m(8,16,32) r/m(16,32) XOR ип8(знак) ->
r/m(16,32) EAX(AX.AL) XOR im32(16,8) -> EAX(AX.AL)
NOT r/m(8,16,32) Инверсия r/m(8,16,32)
TEST r/m(8,16,32), r(8,16,32) r/m(8,16,32),im(8,16,32) EAX(AX,AL),
im32(16,8) r/m(8,16,32) AND r(8,16,32), установка SF, ZF, PF r/m(8,16,32)
AND im(8,16,32), установка SF, ZF, PF EAX(AX.AL) AND im32(16,8),
установка SF,ZF,PF
SAL r/m(8,16,32), im8 Арифметический сдвиг r/m(8,16,32) влево на п
разрядов, n=im8 Арифметический сдвиг r/m(8,16,32) влево на п разрядов,
n=(CL)
SAR r/m(8,16,32), im8 r/m(8,16,32), CL Арифметический сдвиг r/m(8,16,32)
вправо на п разрядов, n=im8 Арифметический сдвиг r/m(8,16,32) вправо на п
разрядов, n=(CL)
SHL r/m(8,16,32), im8 r/m(8,16,32), CL Логический сдвиг r/m(8,16,32)
влево на п разрядов, n=im8 Логический сдвиг r/m(8,16,32) влево на п
Предыдущая << 1 .. 48 49 50 51 52 53 < 54 > 55 56 57 58 59 60 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed