На этом шаге мы познакомимся с основными логическими командами.
При программировании на Ассемблере очень часто приходится изменять значения отдельных битов. Для этого можно использовать следующие логические команды.
Выполняет поразрядное умножение двух операндов. | |
Выполняет поразрядное сложение двух операндов. | |
Выполняет логическую операцию исключающего ИЛИ над битами двух операндов. |
Рассмотрим более подробно перечисленные команды.
1. Команда AND(Логическое И) выполняет поразрядное умножение двух операндов, которые могут находиться в регистре или в памяти. Второй операнд также может быть представлен константой. Общий вид:
AND <1-й операнд>, <2-й операнд>
Если два проверяемых бита равны 1, то в первом операнде устанавливается единичное значение бита, в остальных случаях - нулевое.
регистр CX: 02F7H 0000 0010 1111 0111; 2-й операнд: F300H 1111 0011 0000 0000; результат: 0200H 0000 0010 0000 0000.
Флаги, затрагиваемые операцией: OF, SF, ZF, PF, CF.
2. Команда OR (Логическое ИЛИ) выполняет поразрядное сложение двух операндов, которые могут находиться в регистре или в памяти. Второй операнд также может быть представлен непосредственными данными. Общий вид:
OR <1-й операнд>, <2-й операнд>
Если любой из проверяемых битов равен 1, то в первом операнде устанавливается единичное значение бита, в противном случае значение бита не изменяется.
регистр CX: 02F7H 0000 0010 1111 0111; 2-й операнд: F300H 1111 0011 0000 0000; результат: F3F7H 1111 0011 1111 0111.
Флаги, затрагиваемые операцией: OF, SF, ZF, PF, CF.
3. Команда XOR выполняет логическую операцию исключающего ИЛИ над битами двух операндов, которые могут находиться в регистре или в памяти. Второй операнд также может быть представлен константой. Общий вид:
XOR <1-й операнд>, <2-й операнд>
Если проверяемые биты одинаковы, то в первом операнде устанавливается нулевое значение бита, в противном случае значение бита равно единице.
регистр CX: 02F7H 0000 0010 1111 0111; 2-й операнд: F300H 1111 0011 0000 0000; результат: F1F7H 1111 0001 1111 0111.
Флаги, затрагиваемые операцией: OF, SF, ZF, PF, CF.
На следующем шаге мы начнем говорить о прерываниях.