Краткие теоретические и учебно-методические материалы по теме практической работы




Логические команды служат для сброса или установки отдельных бит или байт в слове. Они включают операторы «не», «или», «и», «исключающее или» и операцию тестирования.

 

Таблица 9.1 – Логические команды

Название Мнемокод Действие
«Не» NOT op op←NOT(op)
Логическое «или» OR op1,op2 op1←(op1)U(op2)
Логическое «и» AND op1,op2 op1←(op1)&(op2)
«Исключающее или» XOR op1,op2 op1←(op1)XOR(op2)
Проверка битов TEST op1,op2 FLAGS←(op1)&(op2)

 

Инструкция NOT op инвертирует все биты байта или слова.

Команда OR op1,op2 выполняет поразрядное логическое «или» двух операндов и помещает результат на место первого операнда. Бит результата устанавливается в 1, если хотя бы один из двух соответствующих битов операндов равен 1, и устанавливается в 0 если нет.

Команда AND op1,op2 выполняет поразрядное логическое «и» двух операндов и помещает результат на место первого операнда. Бит результата устанавливается в 1, если установлены в 1 оба соответствующих ему бита операндов, и устанавливаются в 0 противном случае.

Команда XOR op1,op2 выполняет поразрядную операцию «исключающее или» двух операндов и помещает результат на место первого операнд. Бит результата устанавливается в 1, если соответствующие ему биты операндов имеют противоположные значения, и устанавливается в 0 в противном случае.

Инструкция TEST выполняет логическое «и» двух операндов (байтов или слов), модифицирует флаги SF, ZF и PF, но результат не возвращает, т.е. операнды не изменяются.

Команды сдвига данных

 

Таблица 9.2 – Команды сдвига данных

Название Мнемокод Действие
Сдвиг операнда влево SHL dst,CL
Сдвиг операнда вправо SHR dst,CL
Циклический сдвиг влево ROL dst,CL
Циклический сдвиг вправо ROR dst,CL
Циклический сдвиг влево через CF RCL dst,CL
Циклический сдвиг вправо через CF RCR dst,CL

 

Команда SHL dst,CL выполняет сдвиг битов влево на число разрядов, хранящееся в регистре CL. Освобождающиеся при сдвиге разряды заполняются нулями. При этом последний сдвигаемый бит сохраняется в флаге CF. Например, SHL 11111111b,3. После выполнения команды получим 11111000.

Команда SHR dst,CL работает аналогично, но сдвиг выполняется вправо. Например, SHR 11111111b,3. После выполнения команды получим 00011111.

Команда ROR dst,CL выполняет циклический сдвиг вправо на число разрядов, хранящееся в регистре CL. При этом младший сдвигаемый бит копируется в флаг CF.

 

Рисунок 9.1 – Изображение циклического сдвига вправо

 

Команда ROL dst,CL выполняет циклический сдвиг влево на число разрядов, хранящееся в регистре CL. При этом старший сдвигаемый бит копируется в флаг CF.

Команда RCL dst,CL выполняет циклический сдвиг влево через CF. Все разряды операнда циклически сдвигаются влево. Содержимое старшего разряда загружается в СF, а прежнее содержимое СF загружается в младший разряд результата.

Команда RCR dst,CL выполняет циклический сдвиг вправо через CF. Все разряды операнда циклически сдвигаются вправо. Содержимое младшего разряда загружается в СF, а прежнее содержимое СF загружается в старший разряд результата.

 

Примеры программ

Задача 1. Установить 3 и 0 биты в регистре AL, остальные не изменять.

OR AL, 00001001b

 

Задача 2. Сбросить 4 и 6 битвы в регистре AL, остальные биты не изменять.

AND AL, 10101111b

 

Задача 3. Инвертировать 2 и 4 биты в регистре AL, остальные биты не изменять.

XOR AL, 00010100b

 

Задача 4. Перейти на метку LAB, если установлен 4 бит регистра AL, в противном случае продолжить выполнение программы.

TEST AL, 00010000b

JNZ LAB

LAB:

 

Задача 5. Посчитать число единиц в регистре AL, рассматривая байт, как набор бит.

MOV CX, 8; число сдвигов

XOR BL, BL; обнуление BL

LL: SHL AL, 1; сдвиг влево на один разряд

JNC NO; переход, если нет переноса

INC BL; иначе увеличить BL

NO: LOOP LL; возврат, если СХ не равно 0

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: