Робота схеми двійковій-десяткового корекції - студопедія

Структурна організація МК48.

Основою структури МК48 є процесор. Основа процесора - 8-розрядний АЛП. яке виконує арифметичні, логічні, зсувні операції над даними в довічним і двійково-десятковому коді. Основний елемент АЛУ - восьмизарядний акумулятор. Є схема десяткового корекції (КФОР), призначена для обробки двійковій-десяткових даних.

Уявлення чисел в двійковому і двійково-десятковому вигляді відрізняються. Йтиметься про кількість, що займає 8 двійкових розрядів (байті). У двійковій-десятковому (BCD) поданні байт розбивається на два полубайта (тетради) і в кожну тетраду записується цифра в двійковому вигляді. Наприклад, число 35, записане в BCD-форматі буде мати вигляд: 00110101. Як видно з прикладу, в старшій тетраде записана цифра 3, а в молодшій цифра 5. Для запису числа має велику розрядність потрібно і більше зошити. Діапазон BCD-чисел, що займають один байт дорівнює 0 ... 99. Ще приклади: десяткове число 83 = 10000011 в BCD-форматі,

Зверніть увагу, що ці числа в двійковій системі матимуть інше уявлення: 83 = 01010011 64 = 01000000.

При виконанні арифметичних операцій над BCD-числами, так як процесор числа тільки в двійковому вигляді, може вийти невірний результат. Наприклад, складемо два числа, представлені в BCD-форматі. Це числа 69 і 27.

Процесор зробить додавання за правилом додавання двійкових чисел і отримає в результаті: + 01101001

Якщо продовжувати розглядати результат в BCD-форматі, то отримаємо невірний результат. Отримали 90 (BCD), а повинні були отримати 96 (BCD).

Вийшло число, молодша цифра якого виходить за межі максимального представлення чисел в BCD-форматі.

Для того щоб і в першому і в другому прикладі скорегувати результат, тобто отримати вірне BCD-уявлення числа, використовується схема десяткового корекції, яка виправляє результат будь-якої арифметичної операції по команді DA A.

За командою DA A виконується:

1.Якщо молодша тетрада результату більше 9 або при виконанні операції був перенесення з 3 розряду в 4, то до молодшої тетраде додається 6 (0110).

У першому прикладі був перенесення з 3 розряду в 4. Тому команда DA A додасть до результату 0110, і правильний результат буде 10010110. Для другого прикладу після додавання 0110, так як молодша тетрада більше 9, вийде результат

10000110, рівний в BCD-поданні 85.

2.Якщо старша тетрада результату більше 9 або був перенесення з 7 розряду, то до старшої тетраде додається 0110 = 6.

Висновок. Якщо в програмі числа представлені в BCD-форматі, то після арифметичних команд в програмі необхідно вставляти команду DA A.

Схожі статті