АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Логические команды

Читайте также:
  1. I. Психологические факторы низкой надежности персонала
  2. I. Экологические проблемы современного общества
  3. II. Клинико-психологические классификации.
  4. А. ЛОГИЧЕСКИЕ ДОВОДЫ
  5. Анатомические и физиологические особенности пищеварительной системы у детей
  6. Анатомо- физиологические особенности кожи 2 - Попытка 42
  7. Анатомо-физиологические возможности детей 13 — 15 лет
  8. Археологические данные о социальной структуре
  9. Археологические находки
  10. Археологические памятники трипольской, черняхивской, зарубенецкой культуры.
  11. Археологические раскопки Жареных (Шареных) бугров.
  12. Аура таланта Люка Бессона или отзывы съемочной команды о работе Бессона на площадке

В ассемблере есть логические команды AND, OR, XOR, NOT. Еще есть команда TEST, которая выполняется как AND, но с особенностями, о которых речь ниже.

В ассемблере эти команды обрабатывают пары битов и порождают как результат тоже бит. Биты трактуются: 0 – неправда, ложь; 1 – правда, истина.

Ассемблерный нюанс состоит в том, что один бит как операнд логической команде сообщить никак не возможно, синтаксис допускает операнды размерами, стандартными для процессора: байт, слово (word), двойное слово (dword). В этом случае логические команды AND, TEST, OR, XOR имеют всегда два операнда одинаковой разрядности (byte-byte, word-word, dword-dword). Второй операнд логической команды называют маской.

Биты этих операндов обрабатываются попарно (нулевой с нулевым, первый с первым, второй со вторым и т.д. до последней пары в разрядной сетке.).

Правила вычисления бита-результата («таблицы истинности») такие:

 

Первый бит        
Второй бит (маска)        
Результат AND (и TEST)        
Результат OR        
Результат XOR        

 

Из битов-результатов составляется значение-результат, и по этому результату устанавливаются флаги. Это делает возможность «отловить» нулевое значение, отрицательное, короче, любое, которое детектируется флагами. И последнее действие при выполнении – команды AND, OR, XOR записывают значение в свой первый операнд; а TEST это значение никуда не пишет, у этой команды (по алгоритму это та же AND) дело заканчивается установкой флагов.

Особняком стоит команда NOT, у неё всегда один операнд (byte, word, dword). И работа этой команды проста – она просто меняет каждый бит своего операнда на противоположный и это значение опять пишет в этот свой единственный операнд.

Поскольку первый операнд перезаписывается, то он не может быть константой.

Проблема 1. Как сбросить бит.

Решение такое:

ГарантированныйНоль = ПроизвольныйБит AND 0;

Итак, правило сброса словесно выражается так: чтобы сбросить бит, надо выполнить для него AND с маской ноль.

 

Проблема 2. Как установить бит.

Решение:

ГарантированнаяЕдиница = ПроизвольныйБит OR 1;

Итак, правило установки бита словесно выражается так: чтобы установить бит, надо выполнить для него OR с маской 1.

 

Проблема 3. Как инвертировать бит.

Решение:

ИнвертированныйБит = ИсходныйБит XOR 1;

 

Написать на бумаге команду, которая установит старший бит регистра AН.

OR ah, 10000000B

Здесь В означает запись число в битовом формате.

 

Написать на бумаге команду, которая сбросит средние 4 бита регистра AL.


1 | 2 | 3 | 4 | 5 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)