Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekz._10.doc
Скачиваний:
2
Добавлен:
05.05.2019
Размер:
142.85 Кб
Скачать

4.2.2. Віднімання упакованих bcd-чисел

Аналогічно додаванню, мікропроцесор розглядає упаковані BCD-числа як двійкові і, відповідно, виконує віднімання BCD-чисел як двійкових.

Виконаємо віднімання 67-75. Оскільки мікропроцесор виконує віднімання способом додавання, то і ми зробимо так само (

Приклад 14. Віднімання упакованих BCD-чисел

67 = 0110 0111

75 = 1011 0101

-8 = 0001 1100 = 28 ???

див. прикл. 14). Як бачимо, результат дорівнює 28 в десятковій системі числення, що є абсурдом. У двійково-десятковому коді результат має бути рівним 0000 1000 (або 8 в десятковій системі числення).

При програмуванні віднімання упакованих BCD-чисел програміст, як і при відніманні неупакованих BCD-чисел, повинен сам здійснювати контроль за знаком. Це робиться за допомогою прапора cf, який фіксує позику зі старших розрядів. Само віднімання BCD-чисел здійснюється простою командою віднімання sub або sbb.

Корекція результату здійснюється командою das:

das (Decimal Adjust for Substraction) - Корекція результату віднімання для представлення в десятковому вигляді. Команда das перетворить вміст регістра al в дві упаковані десяткові цифри за алгоритмом, наведеним в описі команди das.

8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]