Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Арифметика в дополнительном кодеМикропроцессор может использовать числа в форме дополнительного кода, потому что он в состоянии выполнять операции дополнения (инверсии), инкрементирования (добавления 1 к числу) и сложения двоичных чисел. Микропроцессор не приспособлен для прямого вычитания. Он использует сумматоры и для выполнения вычитания оперирует над дополнительным кодом. Сложим десятичные числа +5 и +3. Рассмотрим процедуру действий в случае одновременного сложения чисел в десятичном и в дополнительном кодах: 1-е число (+5) 0000 0101 + + 2-е число (+3) 00000011 (+8) 0000 1000 Согласно табл. 2.l0 +5=0000 0101 в дополнительном коде аналогично +3=0000 0011. Тогда числа в дополнительном коде 0000 0101 и 0000 0011 складываются, как обычные двоичные числа, давая сумму 0000 1000 в дополнительном коде, т.е. 0000 1000=+810. Пусть надо сложить десятичные числа +7 и —3. Согласно табл. 2.10 +7 = 0000 0111 и —3 = 1111 1101 соответственно в дополнительном коде. Они затем складываются, как обычные двоичные числа, и результат 1 0000 0100 получается в дополнительном коде: 1-е число (+7) 0000 0111 + + 2-е число (-3) 1111 1101 (+4) 1 0000 0100 Пренебречь переполнением. Старший бит является переполнением 8-разрядного регистра, и им можно пренебречь. Получаем сумму 0000 0100 или +410. Сложим десятичные числа +3 и —8. Согласно все той же табл. 2.10 +3=0000 0011 и —8=1111 1000. Их дополнительные коды 0000 0011 и 1111 1000 складываются, как обычные двоичные числа, что дает 1111 1011=—510: + + (-8) 1111 1000 2-е число (—5) 1111 1011 Сложим десятичные числа —2 и —5. В дополнительном коде согласно табл. 2.10—2=1111 1110 и—5=1111 1011. Два числа 1111 1110.и 1111 1011 складываются, как обычные десятичные числа, что дает 1 1111 1001: 1-е число (-2) 1111 1110 + + 2-е число ( -5) 1111 1011 (-7) 1 1111 1001 Пренебречь переполнением. Старший бит результата является переполнением 8-разрядного регистра, и им пренебрегаем. Таким образом, суммой двух чисел 1111 1110 и 1111 1011 в дополнительном коде будет 1111 1001. Согласно табл. 2.10 сумма 1111 1001=—710. Вычтем теперь десятичное число +5 из десятичного числа +8. Первое число +8=0000 1000, второе +5=0000 0101. В дополнительный код (инвертировать и добавить 1) должно быть преобразовано число 00000101, что дает 1111 1011. Затем первое число 0000 1000 складывается с дополнительным кодом второго 1111 1011, как с обычным двоичным числом, что дает 1 0000 0011: 1-е число (+8) 0000 1000 — Дополнительный код (+3) 1 0000 0011 Пренебречь переполнением. Старший бит является переполнением регистра, им пренебрегаем, что дает результат 0000 0011 = +310. Заметим, что второе число было представлено в дополнительном коде, затем сложено с первым. Используя дополнительный код и сумматор, микропроцессор выполняет вычитание. Вычтем теперь большее десятичное число +6 из десятичного числа +2: 1-е число (+2) _ 0000 0010 - Дополнительный код + 2-е число (+6)=00000110 — 1111 1010 (—4) 1111 1100 Дополнительный код первого числа +2=0000 0010, второе число +6=0000 0110, его дополнительный код (инверсия и добавление 1)—1111 1010. Оба эти кода сложены затем, как обычные двоичные числа, что дает 1111 1100, а согласно табл. 2.10 1111 1100 =—410. Упражнения 2.38. Сложить следующие десятичные числа со знаком, используя метод дополнительного кода: а) (+7) + (+1) б) (+31) + (+26) 2.39. Сложить следующие десятичные числа со знаком, используя метод дополнительного кода: а) (+8) + (-5) б) (+89) + (-46). 2.40. Сложить следующие десятичные числа со знаком, используя метод дополнительного кода: а) (+1) + (-6) б) (+20) + (-60). 2.41. Сложить следующие десятичные числа со знаком, используя метод дополнительного кода: a) (-3) + (-4) б) (-13) + (-41). 2.42. Вычесть следующие десятичные числа со знаком, используя метод дополнительного кода: а) (+7) - (+2) б) (+113) - (+50). 2.43. Вычесть следующие десятичные числа со знаком, используя метод дополнительного кода: а) (+3) - (+8) б) (+12) - (+63). Решения 2.38. Следовать процедуре, приведенной в § 2.7: а) (+7) 0000 0111 б) (+31) 0001 1111 (+1) 0000 0001 (+26) 0001 1010 (+8) 0000 1000 (доп. код); (+57) 0011 1001(доп. код). 2.39. Следовать процедуре, приведенной в § 2.7: а) (+8) 0000 1000 б) (+89) 0101 1001 (-5) 1111 101 (-46) 1101 0010 (+3) 10000 0011 (доп. код); (+43) 10010 1011(доп. код). Пренебречь переполнением. Пренебречь переполнением. 2.40. Следовать процедуре, приведенной в § 2.7: а) (+1) 0000 0001 б) (+20) 0001 0100 (—6) 1111 1010 (—60) 1100 0100 (—5) 1111 1011 (доп. код); (—40) 1101 1000(доп. код). 2.41. Следовать процедуре, приведенной в § 2.7: а) (-3) 1111 1101 б) (—13) 1111 0100 + + (-4) 1111 1100 (—41) 1101 0111 (—7) 11111 1001(доп.код); (—54) 11100 1010(доп. код). Пренебречь переполнением. Пренебречь переполнением. 2.42. Следовать процедуре, приведенной в § 2.7: б) (+7) 0000 0111 дополнительный + (+2) = 0000 0010------------------ 11111110 ———код и сложить -- (+5) 10000 1110(доп. код). Пренебречь•переполнением. б) (+113) 0111 0001 + дополнительный + (+50) = 0011 0010------------------ 11001110 код и сложить - 10011 1110(доп.код) Пренебречь переполнением, 2.43. Следовать процедуре, приведенной в § 2.7: а) (+3) 0000 0011 - + (+8) = 0000 1000 дополнительный 1111 1000 — код и сложить 1111 1011(доп.код); б) (+12) 0000 1100 (+63) = 0011 1111 дополнительный+1100 0001 (-51) код и сложить 1100 1101(доп.код).
Лекция 9 Логические элементы В цифровых компьютерах информация представляется и обрабатывается с помощью электронных логических схем. Логические схемы оперируют двоичными переменными, принимающими одно из двух значений (обычно таковыми являются нуль и единица). Используемые для обработки цифровых сигналов устройства называются логическими элементами, и для их идентификации используют логические символы. Рассказ о двоичной логике проще всего начать с простого примера, знакомого многим из вас. Представьте себе обычную электрическую лампочку, состояние которой (включена/выключена) управляется двумя выключателями, х1 и х2. Каждый из выключателей может находиться в одном из двух возможных положений, 0 или 1 (рис. 3.1, а). Это означает, что его можно представить как двоичную переменную. Поэтому пусть имена переключателей служат и именами соответствующих им двоичных переменных. Еще на рисунке показаны источник питания и сама лампочка. То, как выключатели будут управлять включением и выключением лампочки, зависит от соединения их проводов. Свет горит лишь в том случае, если образуется замкнутый контур, соединяющий лампочку с источником питания. Пусть условие включения лампочки представляет двоичная переменная f. Если лампочка включена, значит, f = 1, а если она выключена, то f = 0. Таким образом, условие f = 1 указывает, что в цепи существует как минимум один замкнутый контур, а условие f = 0 означает, что замкнутого контура нет. Очевидно, что f является функцией двух переменных, х1 и х2. Теперь давайте рассмотрим существующие способы управления лампочкой. Для начала, предположим, что она будет гореть при условии, что хотя бы один из переключателей находится в положении 1, то есть f = 1, если х1 = 1 и х2 = 0 или х1 = 0 и х2 = 1 или х1 = 1 и х2 = 1 Соединения, реализующие этот тип управления, показаны на рис. 3.1,б. Рядом со схемой приведена представляющая эту ситуацию логическая таблица истинности. В таблице перечислены все возможные пары установок переключателей и соответствующие им значения функции f. В терминах математической логики эта таблица представляет функцию ИЛИ (OR) переменных х1 и х2. Рис. 3.1. Схемы включения электрической лампочки: лампочка, управляемая двумя выключателями (а); параллельное соединение выключателей — схема ИЛИ (б); последовательное соединение выключателей — схема И (в); соединение выключателей по схеме Исключающее ИЛИ (г) Операцию ИЛИ обычно представляют алгебраическим знаком <+» или «Ú» так что f = х1 + х2 = х1 Ú х2 Мы говорим, что х1 и х2 являются входными переменными, а f — это выходная функция. Следует указать некоторые важнейшие свойства операции ИЛИ. Прежде всего, она коммутативна, то есть х1 + х2 = х2 + х1 Данная операция может распространятся на n переменных, так что функция f = х1 + х2 +...+ xn принимает значение 1, если это же значение имеет хотя бы одна переменная xn. Проанализировав таблицу истинности, вы увидите, что 1 + х = 1 и 0 + х = х А теперь предположим, что лампочка должна загораться только в том случае, если оба выключателя находятся в положении 1. Такая схема соединения выключателей с соответствующей ей таблицей истинности показана на рис. 3.1, в. Эта схема соответствует функции И (AND), для обозначения которой используется символ <•> или «Ù»: f = х1•х2 = х1 Ù х2 Вот важнейшие свойства операции И: х1•х2 = х2• х1 1•х = х 0•х = 0 Функцию И тоже можно распространить на n переменных: f = х1•х2 •... • хn Эта функция имеет значение 1 только в том случае, если все переменные х имеют значение 1. Она представляет такую же схему, как на рис. 3.1, в, в которой правда, последовательно соединено большее количество выключателей. Последний вариант соединения выключателей также достаточно распространен. Здесь выключатели подсоединены с двух концов ступенчатого контура, так что лампочку можно включать и выключать с помощью любого из них. Это означает, что если свет включен, изменением положения любого из выключателей его можно выключить, а если свет выключен, изменением положения любого из выключателей его можно включить. Предположим, что лампочка не горит, когда оба выключателя находятся в положении 0. Переключение же любого из них в положение 1 включает лампочку. Теперь предположим, что лампочка горит, если х1 = 1, х2 = 0. Переключение х1 в положение 0 выключает лампочку. Более того, для ее выключения можно также установить х2 в положение 1, то есть f = 0, если x1 = х2 =1. Соединение, которое реализует этот способ управления лампочкой, показано на рис. 3.1, г. Соответствующая логическая операция, представляемая символом «Å», называется Исключающее ИЛИ (EXCLUSIVE-OR или XOR). Приведем ее важнейшие свойства: x1 Å х2 = х2 Å x1 1 Å х = 0 Å х = х где обозначает функцию НЕ (NOT) от переменной х. Эта функция переменной f = имеет значение 1, если х = 0, и значение 0, если х = 1. В подобном случае мы говорим, что входное значение х инвертируется или дополняется.
|