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

  • ПРАВИЛО: для переводу бінарного числа з прямого коду в модифіковний доповняльний код

  • ПРАВИЛО: для переводу бінарного числа з прямого коду в модифіковний обернений код

  • Щербаков а. Н., Проскурін м. П., Грушко с. С. Прикладна теорія цифрових автоматів


    Скачать 2.54 Mb.
    НазваниеЩербаков а. Н., Проскурін м. П., Грушко с. С. Прикладна теорія цифрових автоматів
    АнкорUkr1_PTTsA_kl_ch1_10-02-2010.doc
    Дата13.02.2018
    Размер2.54 Mb.
    Формат файлаdoc
    Имя файлаUkr1_PTTsA_kl_ch1_10-02-2010.doc
    ТипПротокол
    #15521
    страница14 из 26
    1   ...   10   11   12   13   14   15   16   17   ...   26

    9 МОДИФІКОВАНІ БІНАРНІ КОДИ




    9.1 Переповнення розрядної сітки


    Ми не раз спостерігали, як при складанні чисел з однаковими знаками, представлених у формі з фіксованою комою (ФФК), може виникнути переповнення розрядної сітки. При цьому, щоб уникнути спотворення резуль-тату, автомат повинен фіксувати переповнення і відповідно реагувати на це.


    9.1.1 Переповнення при складанні прямих кодів


    Ознакою переповнення розрядної сітки суматора прямого коду є поява одиниці перенесення із старшого розряду цифрової частини числа.

    Приклади. Суматор ДСПК.

    а) А=+1010, В=+1101.

    Апр= 0\1010 (+10)

    +Впр= 0\1101 (+13)

    Спр= 0\0111 (+7≠ +23). Отримано спотворений (невірний) результат із-за втрати перенесення П зі старшого цифрового розряду.

    б) А=1100, В= 1010.

    Апр= 1\1100

    +Впр= 1\1010

    Спр= 1\0110 (-6≠-22). Тут теж отриманий невірний результат із-за втрати одиниці перенесення.


    9.1.2 Переповнення при складанні доповняльних кодів


    Ознакою переповнення розрядної сітки суматора доповняльного коду при складанні позитивних чисел є негативний знак результату, а при складанні негативних чисел  позитивний знак результату.

    Приклади:

    а) А= +0\1011; В= +0\1010 (перевірку отриманого результату проведіть самостійно).


    Адоп=0\1011

    +Вдоп=0\1010

    Сдоп≠1\0101



    б) А= 0\1011; В= 0\1001 (перевірку отриманого результату проведіть самостійно).


    Адоп= 1\0101

    +Вдоп= 1\0111

    Спр= 0\1100





    9.1.3 Переповнення при складанні в обернених кодах


    Ознакою переповнення розрядної сітки суматора оберненого коду є знак результату, протилежний знакам операндів.

    Приклад:

    1
    Аоб=0\0111

    +Bоб=0\1101

    Соб=1\0100
    ) А=0\0111; В=0\1101.

    З
    Аоб=1\1001

    Воб=1\0010

    Спр≠0\1011
    нак числа спотворений (невірний):

    2) А= -0\0110; В= -0\1101.

    Знак числа спотворений (невірний)

    Для усунення втрат від неврахування перенесення одиниці та формування стану переповнення, у складі ЦА повинні бути перед-бачені додаткові засоби, що дозволяють фіксувати і аналізувати пере-повнення за їх ознаками з метою усунення спотворення результату.

    Щоб фіксувати переповнення розрядної сітки в ДСПК, ДСДК, ДСОК, вводять допоміжний розряд в знакову частину зображення числа, який називають розрядом переповнення числа. Таке представлення числа називається модифікованим (див. рис. 9.1).

    Рисунок 9.1  Модифікований код числа для ФФК

    Приклади:

    а) [А]пр=00\1100111011, тоді, оскільки А>0 маємо: [а]М.доп=00\1100111011



    б) Апр = 0\1100111011, оскільки А<0, то Ам.доп =100+(Aпр)=q2A

    _100\0000000000

    0\1100111011

    11\0011000101





    ПРАВИЛО: для переводу бінарного числа з прямого коду в модифіковний доповняльний код, аналізують знак числа. Якщо в знаковому розряді знаходиться мінус (одиниця), то в два знакових розряди записують одиниці, а всі цифри числа інвертують (одиниці заміняють нулями, а нулі  одиницями), потім до останньої молодшій цифрі (молодшого розряду) числа додають одиницю. Якщо в знаковому розряді стоїть нуль, то додають ще один, а число не змінюють.

    ПРАВИЛО: для переводу бінарного числа з прямого коду в модифіковний обернений код, аналізують знак числа. Якщо в знаковому розряді знаходиться мінус (одиниця), то в два знакових розряди записують одиниці, а всі цифри числа інвертують (одиниці заміняють нулями, а нулі  одиницями). Коли в знаковому розряді стоїть нуль, то додають ще один, а число не змінюють.

    При виконанні операцій алгебраїчного додавання або вирахування два знакових розряди приймають участь в операції, як рівноправні цифрові розряди. Після виконання операцій, стан знакових розрядів (знак результату) встановлює лівий знаковий розряд, а наявність чи відсутність переповнення  правий знаковий розряд.

    Знакові розряди можуть мати наступні комбінації станів при будь- яких значеннях операндів А і В:

    - 00  результат числа позитивний, переповнення немає;

    - 01  результат числа позитивний, було переповнення;

    - 11  результат числа негативний, переповнення немає;

    - 10  результат числа негативний , було переповнення.



    У машинному представленні чисел, представлених в модифіко-ваному коді, використовується (n+2) розрядів: з них два знакових, кома опускається, встановлюється постійний коефіцієнт формату Кф. Сигнал переповнення виробляється по наступній математичній моделі (тут знак  позначає логічну операцію множення «і», а риска над символом Sg – логічну операцію інверсії

    γ= 1, якщо Sg1 Sg2= 1

    Sg1 Sg2= 1, і γ = 0 в інших випадках.

    Приклади: а) А= 0\1011 (+11), В= 0\1010 (+10).


    Амд=00\1011

    +Вмд=00\1010

    Смд= 01\0101=00\10101 (+21)



    Тут ознакою переповнення є 1 в знаковому розряді. За цією ознакою проводиться зрушення числа вправо з одночасним збільшенням коефіцієнта формату Кф на 1 і відновленням Sg1 (по значенню Sg2)обох розрядів Sg1Sg2\, тобто знаку 00 результату С числа, далі перевіряється нормалізація числа (наявність 1 після коми в числі).

    б
    Амд=11\0101

    + Вмд=11\0111

    Смд=10\1100 Було переповнення. Потрібен зсув вправо і відновлення

    знака. Смд=11\01100 результату і перетворення його в прямий код.

    Смпр=11\10011

    + 1, тоді Спр= 11\10100 (20).
    ) А= 0\1011 (-11), В= 0\1001(-9). Перетворимо в машинну форму: Ампр=11\1011, Вмпр=11\1001. Оскільки обидва числа негативні і операція складання виконується на ДСДК, то в суматор числа поступають в доповняльному коді.

    Аналіз розрядів знаку результату (10  див. третю строку) показав, необхідність відновлення його (до 11), зрушуючи число вправо на один розряд, з одночасним збільшенням коефіцієнта формату Кф на 1. Результат негативний, і тому представлений у доповняльному коді. Тому результат перетвориться в істиний (прямий код) через інвертування (обернений код) і з додаванням +1 в молодший розряд.
    1   ...   10   11   12   13   14   15   16   17   ...   26


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