Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Micro_systK.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
4 Мб
Скачать
☆

Логические команды

Логические команды реализуют логические операции с двумя операндами (конъюнкция, дизъюнкция, сложение по модулю 2) и с одним операндом (инверсия). Данная группа команд представлена в табл. П.3. В таблице использованы следующие условные обозначения:

  • op, op1, op2 – операнды;

  • i8, i16, – 8- и 16-разрядные константы находящиеся непосредственно в командах;

  • r8, r16 – имя регистра РОН, содержащего 8-разрядный или 16-разрядный операнд;

  • m8, m16 – адрес ячейки памяти, содержащей 8- или 16-разрядный операнд;

  • CF – флаг переноса;

  • CL – младший байт регистра CH.

Таблица П.3. Логические команды

Мнемоника

Операция

Допустимые комбинации операндов

Описание команды

op1

op2

Команды воздействуют на флаги CF, OF, PF, SF, ZF. AF - не определен

AND op1,op2

op1:= op1op2

r8

m8

r16

m16

i8, r8, m8

i8, r8

i16, r16, m16

i16, r16

Логическое умножение (конъюнкция)

TEST op1,op2

op1op2

r8

m8

r16

m16

i8, r8, m8

i8, r8

i16, r16, m16

i16, r16

Проверка

OR op1,op2

op1:= op1op2

r8

m8

r16

m16

i8, r8, m8

i8, r8

i16, r16, m16

i16, r16

Логическое сложение (дизъюнкция)

XOR op1,op2

op1:= op1op2

r8

m8

r16

m16

i8, r8, m8

i8, r8

i16, r16, m16

i16, r16

Исключающее ИЛИ (eXclusive OR)

Команда не воздействуют на флаги

NOT op

op := op

r8, m8, r16, m16

Отрицание

Команды воздействуют на флаги CF, OF, PF, SF, ZF. AF - не определен

“0”

CF

op

SHR op1, op2

r8, m8,

r16, m16

1, CL

Логический сдвиг вправо (shift right):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

op

“0”

CF

SHL op1, op2

SAL op1, op2

r8, m8,

r16, m16

1, CL

Логический /арифметический сдвиг влево (shift left):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

CF

Ст.р.

op

SAR op1, op2

r8, m8,

r16, m16

1, CL

Арифметический сдвиг вправо (shift arithmetic right):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

CF

op

ROL op1,op2

r 8, m8, r16, m16

1, CL

Циклический сдвиг влево (rotate left):

  • на один разряд (op2=1);

на CL разрядов (op2=CL, CL0).

op

CF

ROR op1, op2

r8, m8, r16, m16

1, CL

Циклический сдвиг вправо (rotate right):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

CF

op

RCL op1, op2

r8, m8,

r16, m16

1, CL

Циклический сдвиг влево через перенос (rotate left through carry):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

op

CF

RCR op1, op2

r8, m8,

r16, m16

1, CL

Циклический сдвиг вправо через перенос (rotate right through carry):

  • на один разряд (op2=1);

  • на CL разрядов (op2=CL, CL0).

При выполнении логических команд операции производятся поразрядно над одноименными разрядами операндов. Например, если операнды в двоичном коде имеют вид 01101010 и 10010110, то в результате выполнения логических операций будет получено:

AND

OR

XOR

01101010 01101010 01101010

10010110 10010110 10010110

00000010 11111110 11111100.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]