![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Изучение системы команд Ассемблера. Логические команды и команды сдвигаСодержание книги
Поиск на нашем сайте
Практическое занятие № 14 «Изучение системы команд Ассемблера. Логические команды и команды сдвига»
Цель работы: изучить логические команды и команды сдвига данных.
Образовательные результаты, заявленные в ФГОС: Студент должен уметь: производить инсталляцию и настройку программного обеспечения компьютерных систем;
знать: основные компоненты программного обеспечения компьютерных систем.
Логические команды служат для сброса или установки отдельных бит или байт в слове. Они включают операторы «не», «или», «и», «исключающее или» и операцию тестирования.
Таблица 14.1 – Логические команды
Инструкция NOT op инвертирует все биты байта или слова. Команда OR op1,op2 выполняет поразрядное логическое «или» двух операндов и помещает результат на место первого операнда. Бит результата устанавливается в 1, если хотя бы один из двух соответствующих битов операндов равен 1, и устанавливается в 0 если нет. Команда AND op1,op2 выполняет поразрядное логическое «и» двух операндов и помещает результат на место первого операнда. Бит результата устанавливается в 1, если установлены в 1 оба соответствующих ему бита операндов, и устанавливаются в 0 противном случае. Команда XOR op1,op2 выполняет поразрядную операцию «исключающее или» двух операндов и помещает результат на место первого операнд. Бит результата устанавливается в 1, если соответствующие ему биты операндов имеют противоположные значения, и устанавливается в 0 в противном случае. Инструкция TEST выполняет логическое «и» двух операндов (байтов или слов), модифицирует флаги SF, ZF и PF, но результат не возвращает, т.е. операнды не изменяются. Команды сдвига данных
Таблица 14.2 – Команды сдвига данных
Команда SHL dst,CL выполняет сдвиг битов влево на число разрядов, хранящееся в регистре CL. Освобождающиеся при сдвиге разряды заполняются нулями. При этом последний сдвигаемый бит сохраняется в флаге CF. Например, SHL 11111111b,3. После выполнения команды получим 11111000. Команда SHR dst,CL работает аналогично, но сдвиг выполняется вправо. Например, SHR 11111111b,3. После выполнения команды получим 00011111. Команда ROR dst,CL выполняет циклический сдвиг вправо на число разрядов, хранящееся в регистре CL. При этом младший сдвигаемый бит копируется в флаг CF.
Рисунок 14.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
Задания для практической работы
1 Составить таблицы «Логические команды» и «Команды сдвига данных» с указанием названия команды, ее мнемокода и выполняемого действия. 2 Определить содержимое регистра AL при выполнении команд (таблица 14.3). 3 Разработать программу на языке Ассемблер для выполнения задачи в соответствии с вариантом (таблица 14.4).
Таблица 14.3 – Таблица вариантов для задачи 2
Таблица 14.4 – Таблица вариантов для задачи 3
Примечание: массив байтов размещается, начиная с адреса DS:0000h. Ответ должен быть записан в регистр DX. Контрольные вопросы
1 Для чего служат логические команды? 2 Какие команды относятся к логическим и как они работают? 3 Как работают команды SHL dst,CL и SHR dst,CL? 4 Чем отличаются команды ROL dst,CL и RСL dst,CL?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-03-27; просмотров: 375; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.124.181 (0.006 с.) |