Главная страница
Навигация по странице:

  • Задание на выполнение

  • Варианты задания

  • Контрольные вопросы

  • Лабораторная работа 5 (1). Лабораторная работа 5 Двоичнодесятичная арифметика Теория и методические указания


    Скачать 106.61 Kb.
    НазваниеЛабораторная работа 5 Двоичнодесятичная арифметика Теория и методические указания
    Дата17.06.2022
    Размер106.61 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная работа 5 (1).docx
    ТипЛабораторная работа
    #600170

    Лабораторная работа №5 «Двоично-десятичная арифметика»
    Теория и методические указания

    В ЭВМ применяют двоично-десятичные коды (BCD – Binary Coded Decimal или D-коды). В них каждая десятичная цифра кодируется двоичным числом из четырех битов (тетрадой), то есть отдельная тетрада – это запись одной цифры двоичными символами.

    234= 0010 0011 0100

    Тетраду можно записать в следующем виде:

    (1)

    ai– коэффициенты,

    pi – двоичное основание системы счисления.

    Общие требования к двоично-десятичным кодам:

    1. Любая цифра D-кода должна изображаться однозначно.

    2. Должны легко обнаруживаться границы между цифрами.

    3. Большей цифре должно соответствовать большее значение тетрады.

    4. D-коды делятся на взвешанные и невзвешанные.

    Наиболее естественным представляется кодирование десятичных цифр позиционными двоичными кодами с естественными весами разрядов. Такой код принято на­зывать кодом "8421" и он явяляется взвешанным. К невзвешанным кодам относятся коды "8421+3" и "8421+6".

    Основной недостаток кодирования десятичных цифр в коде "8421" состоит в несоответствии веса десятичного и шестнадцатеричного переносов. Действительно, перенос из тетрады шестнадцатеричной цифры имеет вес 16 а деся­тичный перенос - 10.

    Для устранения этого противоречия можно выбрать другие способы кодирования десятичных цифр. Например, код "8421+3" (иногда его называют код с избытком три) позволяет при сложении получать сумму "с избытком 6", при этом вес переноса соответствует десятичному, либо код "8421+6".

    В таблице 1 приведены упомянутые двоичные коды десятичных цифр.

    Таблица 1- Двоичные коды десятичных цифр

    Цифры

    Код "8421"

    "8421+3"

    "8421+6"

    0

    0000

    0011

    0110

    1

    0001

    0100

    0111

    2

    0010

    0101

    1000

    3

    0011

    0110

    1001

    4

    0100

    0111

    1010

    5

    0101

    1000

    1011

    6

    0110

    1001

    1100

    7

    0111

    1010

    1101

    8

    1000

    1011

    1110

    9

    1001

    1100

    1111


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

    Правила сложения в D-кодах:

    1. Сложение производится потетрадно. В тетраде сложение производится по правилам двоичной арифметики.

    2. При рассмотрении D-кодов выделяют разрешенные и запрещенные комбинации.

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

    Правила сложения в коде "8421"

    Если сумма тетрад, представляющих соответствующие десятичные разряды слагаемых, больше 9, но не превышает 15, двоичный перенос в сле­дующую тетраду не формируется. В этом случае требуется выработать ис­кусственный перенос и удалить из тетрады 10, что соответствует добавлении шестерки (0110) и передаче обязательно возникающего при этом переноса в следующий старший разряд.

    Если из тетрады был двоичный перенос (в примере он отмечен знаком ←), то он "унес" из тетрады 16, в то время как десятичный перенос должен "уно­сить" только 10. Следовательно, в такие тетрады, из которых был перенос, следует добавить шестерку (0110).

    Таким образом, коррекция предварительной двоичной суммы при использо­вании кода "8421" заключается в добавлении кода 0110 ко всем тетрадам предварительной суммы, значение которых превышает 9 или из которых был двоичный перенос. Возникающие при коррекции переносы должны обяза­тельно передаваться в следующую старшую тетраду. Выполним операции примера 1 с учетом сформулированных правил коррекции.



    Правила сложения в коде "8421+3"

    Код "8421+3" (пример 2). При кодировании с избытком три каждая десятич­ная цифра представляется как , где - код "8421" цифры. Тогда при сложении

    (1)

    где - предварительная сумма для всех комбинаций десятичных слагаемых, для которых , значение . Однако если переноса из тетрады не было, то результат сформируется "с избытком 6", поэтому потребуется коррекция тетрады предварительной суммы - уда­ление из тетрады лишней тройки. Вычитание (- 3) можно заменить сложением в дополнительном коде.

    Итак, коррекции при сложении в коде "8421+3" подлежат все тетрады пред­варительной суммы, причем к тем тетрадам, из которых сформировался пе­ренос, следует добавить константу 0011, а к тетрадам, из которых не было переноса, добавить константу 1101. Возникающие при коррекции межтетрад­ные переносы игнорируются!

    Пример 2.



    Правила сложения в коде "8421+6"

    При кодировании с избытком шесть первая десятич­ная цифра представляется как , , где , bi - код "8421" цифры.

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

    Итак, коррекции при сложении в коде "8421+6" подлежат тетрады пред­варительной суммы, из которых не было переноса: для этого необходимо добавить константу 1010 (-6). Возникающие при коррекции межтетрад­ные переносы игнорируются!
    Задание на выполнение

    1. Сложить числа А и В в коде (8-4-2-1), (8-4-2-1)+3, (8-4-2-1)+6.

    2. Разработать структуру АЛУ для заданного алгоритма.

    3. Составить микропрограмму работы АЛУ для заданного алгоритма.


    Варианты задания



    А

    В

    Алгоритм микропрограммы

    1

    214

    685

    Сложение в коде (8-4-2-1)

    2

    123

    815

    Сложение в коде (8-4-2-1)

    3

    782

    227

    Сложение в коде (8-4-2-1)+3

    4

    438

    570

    Сложение в коде (8-4-2-1)+6

    5

    437

    255

    Сложение в коде (8-4-2-1)

    6

    164

    277

    Сложение в коде (8-4-2-1)+3

    7

    228

    695

    Сложение в коде (8-4-2-1)+6

    8

    506

    335

    Сложение в коде (8-4-2-1)

    9

    329

    495

    Сложение в коде (8-4-2-1)+3

    10

    717

    106

    Сложение в коде (8-4-2-1)+6

    11

    218

    685

    Сложение в коде (8-4-2-1)+3

    12

    379

    482

    Сложение в коде (8-4-2-1)

    13

    630

    279

    Сложение в коде (8-4-2-1)

    14

    805

    215

    Сложение в коде (8-4-2-1)+6

    15

    313

    497

    Сложение в коде (8-4-2-1)+6

    16

    296

    738

    Сложение в коде (8-4-2-1)+3

    17

    144

    845

    Сложение в коде (8-4-2-1)

    18

    418

    266

    Сложение в коде (8-4-2-1)

    19

    587

    366

    Сложение в коде (8-4-2-1)+3

    20

    234

    588

    Сложение в коде (8-4-2-1)

    21

    167

    847

    Сложение в коде (8-4-2-1)+6

    22

    425

    204

    Сложение в коде (8-4-2-1)+3

    23

    312

    637

    Сложение в коде (8-4-2-1)+6

    24

    721

    228

    Сложение в коде (8-4-2-1)

    25

    199

    814

    Сложение в коде (8-4-2-1)+3


    Контрольные вопросы

    1. Правила сложения в D-кодах.


    Список учебно-методической и дополнительной литературы

    1. Таненбаум Э. Архитектура компьютера. 4-е издание. - СПб: Питер, 2003.-704 с.: ил.

    2. Хамахер К., Вранешич З., Заки С. Организация ЭВМ. 5-е издание. - СПб., Питер; Киев:Издательская группа BHV, 2003.-848 с.: ил.

    К. Цилькер. Организация ЭВМ и систем. Учебное пособие для вузов.–СПб.:Питер, 2004. – 635с.


    написать администратору сайта