Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
231
Добавлен:
04.01.2020
Размер:
5.37 Mб
Скачать

Пример 1.16. Выполним суммирование двух десятичных цифр 6 и 2 и единицы переноса, поступающей из предыдущего десятичного разряда, в десятичной системе счисления и коде 8421.

 

Десятичная СС

Код 8421

Переносы

1

1 1 1

Первая цифра

6

0110

 

+

+

Вторая цифра

2

0010

Сумма

9

1001

Коррекция

 

 

Результат

 

1001

В примере 1.16, полученное в результате суммирования число 1001(2), меньше десяти и коррекция суммы не требуется;

2) 10 ≤ Ti нач ≤ 15, когда имеет место нереализованный десятичный перенос, но нет еще шестнадцатеричного переноса, в результате чего в данной тетраде формируется десятичная сумма с избытком 10: Ti нач = Тi + 10.

Следовательно, во втором подслучае требуется вычитание 10 единиц. По-

скольку в цифровых устройствах вычитание заменяется сложением в допол-

нительном коде, то вычитание 10 единиц заменяется прибавлением шести единиц, так как число 6(10) = 0110(2) является дополнительным кодом отрицательно-

го числа 10(10) = 1010(2), т. е. [– 1010]доп = 0101 + 0001 = 0110(2).

Пример 1.17. Выполним суммирование двух десятичных цифр 8 и 5 в десятичной системе счисления и коде 8421.

 

Десятичная СС

 

 

Код 8421

Переносы

1

0

 

 

 

1

0

 

 

 

 

 

 

 

Первая цифра

 

 

8

 

 

 

 

 

1000

 

 

 

 

 

+

 

 

 

 

 

 

+

 

 

 

Вторая цифра

 

 

5

 

 

 

 

 

0101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сумма

 

 

 

3

 

 

 

 

 

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

Коррекция

 

 

 

 

 

 

 

 

 

 

0110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат

 

 

 

 

 

 

 

 

 

 

 

0011

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

В примере 1.17 полученное в результате суммирования число 1101(2) больше десяти и требуется коррекция суммы, т. е. вычитание 10 единиц. В результате коррекции возникает перенос в соседнюю старшую тетраду, что уменьшает сумму не на 10, а на 16 единиц. Уход из суммы шести лишних единиц компенсируется прибавлением шести единиц в процессе коррекции;

3) Тi нач ≥ 16, когда имеет место и нереализованный десятичный перенос, и реализованный шестнадцатеричный перенос, в результате которых в данной тетраде формируется десятичная сумма с «избытком» минус 6:

Тi нач = Тi +10 – 16 = Тi – 6.

Следовательно, для коррекции суммы требуется прибавление шести единиц. Пример 1.18. Выполним суммирование двух десятичных цифр 7 и 9 в деся-

тичной системе счисления и коде 8421.

 

Десятичная СС

 

 

Код 8421

Переносы

1

0

 

 

 

1

1110

 

 

 

 

 

 

 

Первая цифра

 

 

7

 

 

 

 

 

0111

 

 

 

 

 

+

 

 

 

 

 

 

+

 

 

 

Вторая цифра

 

 

9

 

 

 

 

 

1001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сумма

 

 

 

6

 

 

 

 

 

 

0000

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Коррекция

 

 

 

 

 

 

 

 

 

 

0110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результат

 

 

 

 

 

 

 

 

 

 

0110

 

 

Таким образом, коррекция тетрады во втором и третьем подслучаях выполняется одинаково.

Рассмотренный метод коррекции является одношаговым, но не очень удобным для практической реализации, поскольку в нем нужно отслеживать величину начального значения каждой тетрады.

Процесс коррекции можно значительно упростить, если сделать его двушаговым. Для этого на первом шаге, еще до процесса суммирования выполняется первая коррекция всех тетрад путем прибавления поправки (шести единиц) к каждой тетраде одного из слагаемых. Тогда первый подслучай будет при отсутствии межтетрадного переноса, а второй и третий – при наличии. В первом подслучае тетрада будет иметь избыток, равный 6, поэтому такие тетрады корректируются второй раз путем прибавления к ним дополнения числа 6 до 16, т. е. числа 10. В результате получается следующее правило сложения десятич-

ных чисел с одинаковыми знаками в коде 8421:

22

1) к каждой тетраде любого из операндов прибавить поправку

1 = 6(10) = 0110(2);

2)выполнить сложение операндов по правилам двоичной арифметики;

3)к тетрадам суммы, в которых вначале не сформировался межтетрадный перенос добавить поправку ∆2 = 10(10) = 1010(2) и блокировать передачу возникшей при этом единицы переноса.

Пример 1.19. Выполним суммирование двух положительных десятичных

чисел Х1 = 268(10) и Х2 = 379(10) в десятичной системе счисления и коде 8421.

Десятичная СС

+

X

1

= 268

(10)

 

 

 

 

X

 

 

= 379

 

 

 

2

(10)

 

 

 

 

X

3

= 647

(10)

 

 

 

Код 8421 1 Выполним первую коррекцию (первый слева разряд является знаковым):

 

[X

]

пр

= 0, 0010 0110 1000

+

1

 

 

 

 

 

=

0110 0110 0110

 

 

1

 

 

 

 

 

 

 

[X

*

= 0, 1000 1100 1110

 

]

пр

 

1

 

 

 

(2-10)

(2-10)

2 Выполним сложение [ ] и [Х2]пр:

1 1

[X ]* = 0, 1000 1100 1110

1 пр (2-10)

+

[X2]пр = 0, 0011 0111 1001(2-10)

[X ]* = 0, 1100 0100 0111

3 пр (2-10)

Очевидно, что знак суммы получается автоматически. 3 Выполним вторую коррекцию:

 

 

[X3]пр = 0, 1100 0100 0111(2-10)

 

 

*

 

 

 

+

2

= 1010 0000 0000(2-10)

 

 

 

 

 

 

 

[X3]пр = 0, 0110 0100 0111(2-10)

 

 

 

6

4

7

23

Результаты суммирования в коде 8421 и десятичной СС совпадают.

Во втором случае, если один из операндов является отрицательным, то непосредственно перед сложением он преобразуется из прямого кода в обратный (или дополнительный). Наиболее просто получается обратный код путем инвертирования всех двоичный цифр в числе.

В результате в каждой тетраде будет получена взаимно обратная десятичная цифра (дополнение исходной цифры до 9) с избытком 6:

Ti = 15 – Ti нач = (9 – Ti нач) + 6.

Это значит, что выполнять первую коррекцию не нужно, поскольку она получается автоматически. После выполнения операции сложения и второй коррекции получится сумма, представленная в обратном коде 8421. Если сумма положительная, то операция на этом заканчивается. Если же сумма отрицательна, то необходимо преобразовать ее из обратного кода в прямой. Обычно инвертирование двоичных цифр отрицательной суммы выполняется до второй коррекции и прибавление поправки ∆2 = 10(10) = 1010(2) выполняется к тем тетрадам, в которых во время сложения сформировался шестнадцатеричный перенос.

Пример 1.20. Выполним сложение двух десятичных чисел с разными знаками X1 = 268(10) и X2 = – 377(10) в десятичной системе счисления и коде 8421.

Десятичная СС

X

1

= 268

(10)

 

 

+

 

 

 

 

X

2

= – 377

(10)

 

 

 

X

3

= – 109

(10)

 

 

 

Код 8421 1 Преобразуем отрицательный операнд в обратный двоично-кодированный

десятичный код с избытком 6:

[X1]пр = 0,

0010

0110

1000(2-10)

[X2]пр

= 1,

0011

0111

0111(2-10)

[ ]

= 1, 1100 1000 1000(2-10)

2 Выполним сложение операндов в обратном коде:

24

1

[X1]обр = 0, 0010 0110 1000(2-10)

+

[X2]обр* = 1, 1100 1000 1000(2-10)

[X3]обр* = 1, 1110 1111 0000(2-10)

3 Выполним перевод суммы в прямой код и введем вторую поправку:

[X

]*

= 1, 0001 0000 1111

(2-10)

3

обр

 

+2 = 0000 0000 1010

[X

]

пр

= 1, 0001 0000 1001

(2-10)

3

 

 

 

 

 

 

 

1

0

9

 

Результаты суммирования в коде 8421 и десятичной СС совпадают.

Если оба операнда – отрицательные числа, то выполняется сложение их модулей по правилам первого случая и сумме присваивается знак минус.

1.1.8 Символьные коды

Символьные коды устанавливают соответствие букв различных алфавитов, знаков препинания, десятичных цифр и других символов двоичным комбинациям. Эти коды можно использовать для хранения и обработки чисел, а также для ввода-вывода информации. Существуют различные символьные коды. Широкое применение в последовательных интерфейсах получил американский стандартный код обмена информа-

цией ASCII (от англ. American Standard Code for Information Interchange). Он является

7-разрядным и позволяет представить 27 = 128 символов (представляется 96 символов и 32 команды обмена). К каждому символу добавляется один контрольный разряд для контроля символа на четность, т. е. символы передаются и хранятся в памяти в виде 8- разрядных слов.

Отечественным аналогом кода ASCII является код обмена информацией семиразрядный КОИ-7, который представлен в таблице 1.4. Этот код позволяет представить заглавные буквы русского и латинского алфавитов, десятичные цифры, знаки препинания и другие символы.

Таблица 1.4 – Символьный код КОИ-7

25

Код символа в шестнадцатеричной системе счисления

Младшая цифра

 

 

Старшая цифра

 

 

 

 

 

 

 

 

2

3

4

5

6

7

 

 

 

 

 

 

 

 

0

Пробел

0

@

P

Ю

П

 

 

 

 

 

 

 

1

!

1

A

Q

А

Я

 

 

 

 

 

 

 

2

«

2

B

R

Б

Р

 

 

 

 

 

 

 

3

#

3

C

S

Ц

С

 

 

 

 

 

 

 

4

¤

4

D

T

Д

Т

 

 

 

 

 

 

 

5

%

5

E

U

Е

У

 

 

 

 

 

 

 

6

 

6

F

V

Ф

Ж

 

 

 

 

 

 

 

7

 

7

G

W

Г

В

 

 

 

 

 

 

 

8

(

8

H

X

Х

Ь

 

 

 

 

 

 

 

9

)

9

I

Y

И

Ы

 

 

 

 

 

 

 

A

 

:

J

Z

Й

З

 

 

 

 

 

 

 

B

+

;

K

[

К

Ш

 

 

 

 

 

 

 

C

,

<

L

\

Л

Э

 

 

 

 

 

 

 

D

=

M

]

М

Щ

 

 

 

 

 

 

 

E

.

>

N

 

Н

Ч

 

 

 

 

 

 

 

F

/

?

O

_

О

Забой

 

 

 

 

 

 

 

Например, десятичная цифра 5 представляется кодом 35(16), русская буква П

70(16), знак «+» – 2B(16) и т. д.

1.1.9Структурные единицы и форматы цифровых данных

Данными называют информацию, представленную в виде пригодном для ее автоматизированной обработки.

В цифровых устройствах данные представляются в двоично-кодированной форме. Основными структурными единицами данных являются: бит, поле, байт, слово.

Бит (от англ. Binary digit – двоичная цифра) – это такое количество информации, которое может быть записано в одном разряде разрядной сетки, например 0 или 1.

Последовательность битов, имеющая определенный смысл, называется полем (поле кода операции, поле адреса и т. д.).

Поле, состоящее из 8 битов, называется байтом (от англ. Byte – слог, часть). Байт в цифровой технике используется для представления и записи лю-

26

бого символа, а также является наименьшей адресуемой единицей для записи и хранения данных в запоминающих устройствах.

На основе байтов строятся любые другие укрупненные единицы данных (слово – 2 байта, двойное слово – 4 байта, учетверенное слово – 8 байт, килобайт

 

10

3

2

10

 

 

байт, мегабайт –

2

20

6

 

10

байт, гигабайт –

30

9

2

10

байт, терабайт –

240 1012 байт).

Словом называется последовательность, состоящая из строго определенного числа байтов, принятого для данного цифрового устройства.

На основе принятой структуры разнообразные данные организуются в соответствии со следующими форматами:

а) числовые данные с фиксированной точкой делятся на беззнаковые (например, адреса памяти) и обычные числа со знаком. Каждый тип данных может быть представлен в четырех форматах: наименьшем (один байт), коротком (одно слово), среднем (двойное слово), длинном (учетверенное слово);

б) для числовых данных с плавающей точкой используется три формата: короткий (4 байта, из них мантисса со знаком 3 байта, порядок со знаком 1 байт), средний (8 байт, из них мантисса со знаком 53 бит, порядок со знаком 11 бит), длинный (10 байт, из них мантисса со знаком 65 бит, порядок со знаком 15 бит);

в) для представления двоично-десятичных данных применяется два форма-

та: упакованный и неупакованный;

Вупакованном формате в каждом байте размещаются две десятичные цифры. Для знака отводится старшая тетрада старшего байта (для положительных чисел – 1100, для отрицательных – 1101). Упакованный формат используется для выполнения арифметических операций.

Внеупакованном формате десятичные цифры кодируются в соответствии

самериканским стандартным кодом обмена информацией ASCII. При этом в каждом байте (в младшей тетраде) размещается только одна десятичная цифра, а в старшей тетраде записывается 0011 (в соответствии с кодом ASCII). Для знака числа отводится старший байт (для положительных чисел – 2B(16), для отрицательных – 2D(16)). Неупакованный формат используется для обмена двоич- но-десятичными данными между процессором и внешними устройствами;

Пример 1.21. Запишем десятичное число Х = – 953(10) в упакованном и неупакованном форматах, используя 32-разрядную сетку.

Упакованный формат:

27

1101

0000

0000 0000

0000

1001

0101

0011

(2-10)

 

 

 

 

 

 

 

 

знак

0

0

0

0

9

5

3

 

4-й байт

3-й байт

2-й байт

1-й байт

 

Неупакованный формат:

 

 

 

 

0010 1101 0011

1001 0011

0101 0011

0011 (ASCII)

знак

3

9

3

5

3

3

 

4-й байт

3-й байт

2-й байт

1-й байт

 

г) для представления и обработки текстовой информации используются специальные информационные структуры переменного формата – строки. Строка представляет непрерывную последовательность битов, байтов, слов или двойных слов. Битовая строка может быть длиной до 1 Гбита, а длина остальных строк может достигать 4 Гбайт.

Контрольные вопросы и задачи к теме 1.1

1 Какое количество различных двоичных чисел можно представить с помощью двоичной разрядной сетки, если число разрядов n = 8?

2 Какое количество различных десятичных чисел можно представить с помощью двоичной разрядной сетки, если число разрядов n = 8?

3 Переведите из двоичной СС в десятичную число X = 11011.101(2). 4 Переведите десятичное число X = 73.125(10) в двоичную СС.

5 Переведите десятичное число X = 73.125(10) в код 8421.

6 Переведите десятичное число X = 73.125(10) в шестнадцатеричную СС, а затем – в двоичную. Сверьте результат с ответом на вопрос 4.

7 Представьте числа X1 = 0. 1011011(2) и X2 = – 0. 1011011(2) в прямом, обратном и дополнительном кодах, используя восьмиразрядную сетку.

8Сложите два двоичных числа Х1 = 0.01010(2) и Х2 = – 0.11001(2) в обратном и дополнительном модифицированном кодах и сравните полученные результаты.

9Сложите два десятичных числа Х1 = 285(10) и Х2 = 568(10) в десятичной СС и коде 8421 и сравните полученные результаты.

10Опишите форматы двоично-десятичных чисел, применяемые в персональных ЭВМ.

11Запишите десятичные числа X1 = 173(10) и X2 = – 173(10) в упакованном и неупакованном форматах, используя 32-разрядную сетку.

12Что такое беззнаковые числа с фиксированной точкой и для чего они применяются?

28

Тема 1.2 Логические основы цифровой техники

1.2.1 Понятие о логических функциях, логических элементах и логических устройствах

Одна из причин широкого распространения ЭВМ заключается в том, что они могут решать не только арифметические, но и логические задачи благодаря использованию алгебры логики. Как известно, логика – это наука о законах и формах мышления. Алгебра логики – это начальный раздел математической логики, которая занимается изучением возможностей применения формальных методов для решения логических задач. Иногда алгебру логики называют булевой алгеброй по имени английского математика Д. Буля, который еще в XIX в. разработал основные положения исчисления высказываний. В 40-е гг. XX в. алгебра логики нашла широкое применение при составлении и расчете сложных переключающих схем в автоматических телефонных станциях. Она широко применяется при анализе и синтезе различных цифровых узлов, а также при машинном решении логических задач.

Начальным понятием алгебры логики является понятие высказывания. Под высказыванием понимается любое утверждение, которое может быть истинным или ложным. Над высказыванием можно выполнять некоторые математические операции, так как каждое высказывание можно рассматривать как двоичную переменную. Примером двоичной переменной может служить значение какоголибо разряда двоичного числа, которое может быть нулем либо единицей. В соответствии с двоичной природой высказываний условились называть их логическими переменными и обозначать буквами латинского алфавита, приписывая им значение 1 в случае истинности и значение 0 в случае ложности, например

X =1,

X

2

=0,

и т. д.

1

 

 

Высказывания могут быть простыми и сложными. Простое высказывание содержит одну простую законченную мысль. Значение истинности простого высказывания не зависит от значений истинности каких-либо других высказываний. Сложным называется высказывание, значение истинности которого зависит от значений других высказываний. Следовательно, любое сложное высказывание можно считать логической (булевой) функцией некоторых двоичных аргументов – простых высказываний, входящих в его состав. Сложные высказывания также могут служить аргументами еще более сложных логических функций, т. е. при построении логических функций справедлив принцип супер-

29

позиции. Отсюда следует, что можно построить логическую функцию любой сложности, пользуясь ограниченным числом логических операций и принципом суперпозиции.

Термин «логическая операция» означает простейшее действие над логическими аргументами, например логическое отрицание, логическое умножение и т. п.

Если логическая функция содержит только одну логическую операцию, то она называется элементарной.

Электрическая схема, реализующая элементарную логическую функцию называется логическим элементом.

Устройства, реализующие логические функции любой сложности, называ-

ются логическими или цифровыми.

1.2.2Классификация логических устройств

Вцифровой технике для обозначения различной информации пользуются кодовыми словами, которые представляют собой последовательность символов 0 и 1 (логических переменных), например: 10111011.

Цифровые устройства (либо их узлы) можно классифицировать по различным признакам.

По способу ввода и вывода кодовых слов различают логические устройства

параллельного, последовательного и смешанного действия. В логических устройствах параллельного действия все n символов каждого входного слова подаются одновременно, т. е. в параллельном коде. В такой же форме на выходе образуется выходное слово. Очевидно, что в этом случае в устройстве необходимо иметь отдельный вход (выход) для каждого разряда входного (выходного) слова. В логических устройствах последовательного действия символы входного кодового слова поступают не одновременно, а последовательно во времени, символ за символом, т. е. в последовательном коде. В такой же последовательной форме выдается выходное слово. В логических устройствах смешанного действия входные и выходные кодовые слова представляются в различных формах. Такие устройства могут использоваться для преобразования кодовых слов из одной формы представления в другую.

По способу функционирования логические (цифровые) устройства (и их уз-

лы) делятся на два класса: комбинационные цифровые устройства (КЦУ) и последовательностные цифровые устройства (ПЦУ). В КЦУ (цифровых ав-

30