Работа n-разрядного двоичного сумматора напоминает зам?к типа «молния». Но есть существенная разность: зам?к застегивается «шаг за шагом», последовательно. А сложение на двоичном сумматоре осуществляется «параллельно» за один шаг (такт), и выход полностью определяется текущим состоянием входов, независимо от их количества. То есть, если в момент времени t подать 2n сигналов на входы xn,xn-1, xn-2, … ,x2, x1 и yn,yn-1, yn-2,…,y2 ,y1, то n сигналов на выходах сумматора zn, zn-1, zn-2, … ,z2, z1 появятся в тот же момент времени, без задержки. Схемы из функциональных элементов называют поэтому комбинационными схемами, или схемами без памяти. Они не запоминают результатов своей предыдущей работы.
Естественно, вычислительные устройства должны обладать «памятью». Ее наличие даст возможность конструировать счетчики, арифметические регистры и различные «умные» схемы, которые выполнив одну интересную функцию, начинают выполнять другую, не менее интересную.
Такие схемы и способы их анализа и синтеза мы рассмотрим ниже.
2. Логические операции, выполняемые микропроцессором
Микропроцессор компьютера способен выполнять основные логические операции: конъюнкцию & (обозначение AND), дизъюнкцию (обозначение OR), отрицание ? (обозначение NOT), строгую дизъюнкцию (или сложение по модулю 2) ? (обозначение XOR).
Особенностью выполнения логических операций микропроцессором является то, что они выполняются над двоичными кодами (словами, полусловами, двойными словами) поразрядно.
Например, конъюнкций двух двоичных кодов 01101100 и 10101101 будет код 00101100:
01101100
&
10101101
————
00101100.
Дизъюнкция этих же кодов дает код 11101101:
01101100
?
10101101
————
11101101.
Строгая дизъюнкция этих кодов дает код 11000001:
01101100
?
10101101
————
11000001.
Отрицанием кода 10101101 является код 01010010.
Аналогично выполняются операции над более длинными кодами.
Логическая операция конъюнкция может быть использована для проверки значения интересующего нас бита данного байта. Например, если нас интересует значение 3-го бита байта ХХХХХХХХ, то достаточно взять конъюнкцию этого байта с двоичным кодом 00100000. Результатом конъюнкции, как легко сообразить, будет код 00Х00000. То есть, если полученный результат будет численно равен 0, то 3-ий бит исходного байта равен 0, если же полученный результат будет численно отличен от 0, то 3-ий бит этого байта равен 1.
Аналогично с помощью конъюнкции данного байта с кодом 00001000 можно выделить 5-й бит. И т.д.
Такой способ обеспечивает пользователю доступ не только к отдельному байту памяти (по его адресу), но и доступ к отдельному биту этого байта.
МЛОИ
Работа n-разрядного двоичного сумматора напоминает зам?к типа «молния». Но есть существенная разность: зам?к застегивается «шаг за шагом», последовательно. А сложение на двоичном сумматоре осуществляется «параллельно» за один шаг (такт), и выход полностью определяется текущим состоянием входов, независимо от их количества. То есть, если в момент времени t подать 2n сигналов на входы xn,xn-1, xn-2, … ,x2, x1 и yn,yn-1, yn-2,…,y2 ,y1, то n сигналов на выходах сумматора zn, zn-1, zn-2, … ,z2, z1 появятся в тот же момент времени, без задержки. Схемы из функциональных элементов называют поэтому комбинационными схемами, или схемами без памяти. Они не запоминают результатов своей предыдущей работы.
Естественно, вычислительные устройства должны обладать «памятью». Ее наличие даст возможность конструировать счетчики, арифметические регистры и различные «умные» схемы, которые выполнив одну интересную функцию, начинают выполнять другую, не менее интересную.
Такие схемы и способы их анализа и синтеза мы рассмотрим ниже.
2. Логические операции, выполняемые микропроцессором
Микропроцессор компьютера способен выполнять основные логические операции: конъюнкцию & (обозначение AND), дизъюнкцию (обозначение OR), отрицание ? (обозначение NOT), строгую дизъюнкцию (или сложение по модулю 2) ? (обозначение XOR).
Особенностью выполнения логических операций микропроцессором является то, что они выполняются над двоичными кодами (словами, полусловами, двойными словами) поразрядно.
Например, конъюнкций двух двоичных кодов 01101100 и 10101101 будет код 00101100:
01101100
&
10101101
————
00101100.
Дизъюнкция этих же кодов дает код 11101101:
01101100
?
10101101
————
11101101.
Строгая дизъюнкция этих кодов дает код 11000001:
01101100
?
10101101
————
11000001.
Отрицанием кода 10101101 является код 01010010.
Аналогично выполняются операции над более длинными кодами.
Логическая операция конъюнкция может быть использована для проверки значения интересующего нас бита данного байта. Например, если нас интересует значение 3-го бита байта ХХХХХХХХ, то достаточно взять конъюнкцию этого байта с двоичным кодом 00100000. Результатом конъюнкции, как легко сообразить, будет код 00Х00000. То есть, если полученный результат будет численно равен 0, то 3-ий бит исходного байта равен 0, если же полученный результат будет численно отличен от 0, то 3-ий бит этого байта равен 1.
Аналогично с помощью конъюнкции данного байта с кодом 00001000 можно выделить 5-й бит. И т.д.
Такой способ обеспечивает пользователю доступ не только к отдельному байту памяти (по его адресу), но и доступ к отдельному биту этого байта.
Заключение
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40