###
Команда AND
#########################################################
### Реализует поразрядно булевую
+------------------------------------+
функцию И (конъюнкцию). Второй ¦ бит 1 ¦ бит 2 ¦ бит 1
AND бит 2 ¦
операнд выполняет роль маски.
+-------+-------+--------------------¦
Результат заносится на место ¦
0 ¦ 0
¦
0
¦
первого операнда.
¦ 0 ¦
1 ¦
0
¦
¦ 1 ¦
0 ¦
1
¦
¦ 1 ¦
1 ¦
1
¦
+------------------------------------+
### Флажки OF и CF всегда
переводятся в нулевое
состояние, т.к.
межразрядные связи отсутствуют. Флажки SF,
ZF и PF устанавливаются в
зависимости от полученного результата
(по правилам арифметических
операций). Состояние флажка AF не определено.
### Форматы команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ AND Регистр1, Регистр2 ¦ t = 3 такта
¦ 001000 d w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 2-4 байта
¦ mod reg r/m ¦
¦ AND Регистр, Память ¦ t = 9+ЕА
тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
+-------------------------+ l = 2-4 байта
+----------------¦
¦ AND Память, Регистр ¦ t = 16+ЕА
тактов
¦ dispH
¦
+-------------------------+
+----------------+
7
0
+-------------------------+ l = 3-4 байта
+----------------+
¦ AND Регистр, Константа ¦ t = 4 такта
¦ 100000 s w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 3-6 байта
¦ mod 100 r/m ¦
¦ AND Память, Константа ¦ t = 17+ЕА тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
¦----------------¦
¦ dispH
¦
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
7
0
+-------------------------+ l = 2-3 байта
+----------------+
¦ AND Аккумул., Константа¦ t = 4 такта
¦ 0010010 w
¦
+-------------------------+
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
### Примечание:
Используется для перевода в
нулевое состояние тех
бит первого
операнда, которые определяются маской, содержащей
нули в сбрасываемых
битах и единицы в остальных.
### Команда OR
#########################################################
### Реализует поразрядно булевую
+------------------------------------+
функцию ИЛИ (дизъюнкцию).
¦ бит 1 ¦ бит 2 ¦ бит 1
OR бит 2 ¦
Второй операнд играет роль
+-------+-------+--------------------¦
маски. Результат заносится на ¦ 0
¦ 0 ¦
0
¦
место первого операнда.
¦ 0 ¦
1 ¦
1
¦
¦ 1 ¦
0 ¦
1
¦
¦ 1 ¦
1 ¦
1
¦
+------------------------------------+
### Флажки OF и CF всегда
переводятся в нулевое
состояние, т.к.
межразрядные связи отсутствуют. Флажки SF,
ZF и PF устанавливаются в
зависимости от полученного результата
(по правилам арифметических
операций). Состояние флажка AF не определено.
### Форматы команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ OR Регистр1, Регистр2 ¦ t = 3 такта
¦ 000010 d w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 2-4 байта
¦ mod reg r/m ¦
¦ OR Регистр, Память ¦ t = 9+ЕА
тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
+-------------------------+ l = 2-4 байта
+----------------¦
¦ OR Память, Регистр ¦ t =
16+ЕА тактов
¦ dispH
¦
+-------------------------+
+----------------+
7
0
+-------------------------+ l = 3-4 байта
+----------------+
¦ OR Регистр, Константа ¦ t = 4 такта
¦ 100000 s w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 3-6 байта
¦ mod 001 r/m ¦
¦ OR Память, Константа ¦ t = 17+ЕА тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
¦----------------¦
¦ dispH
¦
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
7
0
+-------------------------+ l = 2-3 байта
+----------------+
¦ OR Аккумул., Константа ¦ t = 4 такта
¦ 0000110 w
¦
+-------------------------+
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
### Примечание:
Используется для установки в 1
определенных бит первого
операнда.
### Команда XOR
#########################################################
### Реализует поразрядно булевую
+------------------------------------+
функцию ИСКЛЮЧАЮЩЕЕ
ИЛИ. ¦ бит 1 ¦ бит 2 ¦ бит 1
XOR бит 2 ¦
Второй операнд играет роль
+-------+-------+--------------------¦
маски. Результат заносится на ¦ 0
¦ 0 ¦
0
¦
место первого операнда.
¦ 0 ¦
1 ¦
1
¦
¦ 1 ¦
0 ¦
1
¦
¦ 1 ¦
1 ¦
0
¦
+------------------------------------+
### Флажки OF и CF всегда
переводятся в нулевое
состояние, т.к.
межразрядные связи отсутствуют. Флажки SF,
ZF и PF устанавливаются в
зависимости от полученного результата
(по правилам арифметических
операций). Состояние флажка AF не определено.
### Форматы команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ XOR Регистр1, Регистр2 ¦ t = 3 такта
¦ 001100 d w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 2-4 байта
¦ mod reg r/m ¦
¦ XOR Регистр, Память ¦ t = 9+ЕА
тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
+-------------------------+ l = 2-4 байта
+----------------¦
¦ XOR Память, Регистр ¦ t = 16+ЕА
тактов
¦ dispH
¦
+-------------------------+
+----------------+
7
0
+-------------------------+ l = 3-4 байта
+----------------+
¦ XOR Регистр, Константа ¦ t = 4 такта
¦ 100000 s w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 3-6 байта
¦ mod 110 r/m ¦
¦ XOR Память, Константа ¦ t = 17+ЕА тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
¦----------------¦
¦ dispH
¦
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
7
0
+-------------------------+ l = 2-3 байта
+----------------+
¦ XOR Аккумул., Константа¦ t = 4 такта
¦ 0011010 w
¦
+-------------------------+
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
### Примечание:
Используется для перевода регистра в
нулевое состояние, сравнения
операндов на абсолютное равенство,
инвертирования определенных
бит
операнда с помощью маски.
### Команда TEST
#########################################################
### Реализует поразрядно булевую
+------------------------------------+
функцию И (конъюнкцию). Второй ¦ бит 1 ¦ бит 2 ¦ бит 1
AND бит 2 ¦
операнд выполняет роль маски.
+-------+-------+--------------------¦
В отличии от AND результат ¦
0 ¦ 0
¦
0
¦
никуда не заносится.
¦ 0 ¦
1 ¦
0
¦
¦ 1 ¦
0 ¦
1
¦
¦ 1 ¦
1 ¦
1
¦
+------------------------------------+
### Флажки OF и CF всегда
переводятся в нулевое
состояние, т.к.
межразрядные связи отсутствуют. Флажки SF,
ZF и PF устанавливаются в
зависимости от полученного результата
(по правилам арифметических
операций). Состояние флажка AF не определено.
### Форматы команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ TEST Регистр1, Регистр2 ¦ t = 3 такта
¦ 1000010 w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 2-4 байта
¦ mod reg r/m ¦
¦ TEST Регистр, Память ¦ t = 9+ЕА тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
+-------------------------+ l = 2-4 байта
+----------------¦
¦ TEST Память, Регистр ¦ t = 16+ЕА тактов
¦ dispH
¦
+-------------------------+
+----------------+
7
0
+-------------------------+ l = 3-4 байта
+----------------+
¦ TEST Регистр, Константа ¦ t = 5 тактов
¦ 1111011 w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 3-6 байтов
¦ mod 000 r/m ¦
¦ TEST Память, Константа ¦ t = 11+ЕА тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
¦----------------¦
¦ dispH
¦
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
7
0
+-------------------------+ l = 2-3 байта
+----------------+
¦ TEST Аккумул., Константа¦ t = 4 такта
¦ 1010100 w
¦
+-------------------------+
¦----------------¦
¦ dataL
¦
¦----------------¦
¦ dataH
¦
+----------------+
### Команда NOT
#########################################################
### Инвертирует биты операнда, реализуя поразрядно
унарную логическую
функцию НЕ.
### Регистр флажков не модифицируется.
### Форматы команды:
7
0
+-------------------------+ l = 2 байта
+----------------+
¦ NOT Регистр
¦ t = 3 такта
¦ 1111011 w
¦
+-------------------------+
¦----------------¦
+-------------------------+ l = 2-4 байта
¦ mod 010 r/m ¦
¦ NOT Память
¦ t = 16+ЕF тактов
¦----------------¦
+-------------------------+
¦ dispL
¦
Можно указывать байт или слово.
+----------------¦
При обращении к памяти необходимо
¦ dispH
¦
использовать модификаторы BYTE
+----------------+
(байт) или WORD (слово),
без
которых команда неоднозначна. |