Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булатов В.Н. Архитектура микропроцессороной системы, состав машинных команд и основы программирования микропроцессорной .pdf
Скачиваний:
97
Добавлен:
02.05.2014
Размер:
7.1 Mб
Скачать

6.7 Команда «Исключающая ИЛИ»

Это команда сложения по модулю 2. При сложении чисел по модулю N в формировании разрядной суммы игнорируются все переносы, которые получаются при превышении разрядной суммой числа N.

Составим таблицу истинности сложения по модулю 2 для 2-х двоичных переменных A и B:

Таблица 6 —Таблица истинности mod2

А

А В

Комментарий

В

 

 

0

0

Внутриразрядная сумма = 0

0

 

 

0

1

Внутриразрядная сумма =

1

 

1

1

1

Внутриразрядная сумма =

0

 

1

1

 

Внутриразрядная сумма =

0

0,

1

Переполнение

 

 

 

игнорируется

А теперь выпишем ДНФ (дизъюнктивную нормальную форму записи) этой логической функции: A B=((-A) B) (A (-B)). Что же является важным из таблицы истинности функции A B?

Произведем анализ зависимости выходной функции A B от переменной B, если A=1. Он позволяет сделать вывод, что при A=1 существует зависимость A+B = -В, то есть B инвертируется.

А верхние две строчки таблицы 6 говорят об обратном: если A=0, то B не инвертируется.

Вот эти свойства и используются, главным образом. Обратимся к примеру. Пусть необходимо изменить бит D5 ячейки памяти M1000 на противоположное состояние. Составляем слово, где бит D5=1 (событие A), остальные биты равны нулю: 001000002=2016. После выполнения команды:

XOR BYTE [1000],20

состояние разряда D5 ячейки памяти M1000 изменится на противоположное.

Большой популярностью пользуется такое применение команд сложения по модулю 2:

XOR AX,AX ; обнулить AX;

XOR SI,SI ; обнулить SI;

Эти команды сбрасывают в «0» регистры AX и SI, что собственно и должно быть при сложении по модулю 2 любого числа с самим собой.

44