Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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:
1-е число (+3) 0000 0011

+ +

(-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

— Дополнительный код
2-е число (+5) ---------------- _ 1111 1011

(+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. В подобном случае мы говорим, что входное значение х инвертируется или дополняется.

Date: 2016-07-18; view: 696; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию