Основные команды языка ASSEMBLER
### Команда 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 (слово), без
которых команда неоднозначна.
[ ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ ]
|