Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 44 стр.

UptoLike

Составители: 

6.7 Команда «Исключающая ИЛИ»
Это команда сложения по модулю 2. При сложении чисел по
модулю N в формировании разрядной суммы игнорируются все
переносы, которые получаются при превышении разрядной суммой
числа N.
Составим таблицу истинности сложения по модулю 2 для 2-х двоичных
переменных A и B:
Таблица 6 —Таблица истинности mod2
А
В
АВ
Комментарий
0
0
0
Внутриразрядная сумма = 0
0
1
1
Внутриразрядная сумма =
1
1
0
1
Внутриразрядная сумма =
1
1
1
0
Внутриразрядная сумма =
0,
Переполнение
игнорируется
А теперь выпишем ДНФ (дизъюнктивную нормальную форму
записи) этой логической функции: AB=((-A)B)(A(-B)). Что же
является важным из таблицы истинности функции AB?
Произведем анализ зависимости выходной функции AB от
переменной B, если A=1. Он позволяет сделать вывод, что при
A=1 существует зависимость A+B = -В, то есть B инвертируется.
А верхние две строчки таблицы 6 говорят об обратном: если A=0,
то B не инвертируется.
Вот эти свойства и используются, главным образом. Обратимся к
примеру. Пусть необходимо изменить бит D5 ячейки памяти M
1000
на
противоположное состояние. Составляем слово, где бит D5=1 (событие
A), остальные биты равны нулю: 00100000
2
=20
16
. После выполнения
команды:
XOR BYTE [1000],20
состояние разряда D5 ячейки памяти M
1000
изменится на
противоположное.
Большой популярностью пользуется такое применение команд
сложения по модулю 2:
XOR AX,AX ; обнулить AX;
XOR SI,SI ; обнулить SI;
Эти команды сбрасывают в «0» регистры AX и SI, что собственно и
должно быть при сложении по модулю 2 любого числа с самим собой.
44
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