3.4.2
Операция
двоично-десетична
корекция
Както
беше
отбелязано в
началото на §3.4,
операция
събиране
(изваждане)
на двоично
кодирани
десетични
числа може да
се
декомпозира
на две
изпълними
двоични
операции. По
същество
тези
операции са
операции от
тип събиране
и с тяхна
помощ върху
двоичния
суматор,
който е задължителен
за всяко АЛУ,
се моделира
двуетажната
логическа
структура на
2/10-чния суматор,
чийто синтез
е изложен
подробно в книга [2].
Фактическото
събиране на
две 2/10-чни
числа в
двоичното
АЛУ на
конвенционален
процесор се
постига чрез
машинна
програма от
две машинни
команди –
една за
двоично
събиране
(обикновено с
мнемокод ADD - Add) и втора
за 2/10-чна
корекция (обикновено
с мнемокод DAA – Decimal
Adjust Addition). За
осъществяване
на
последната
се използуват
автоматично
формирани и
запаметени при
първото
двоично
събиране,
признаци или
поразрядни
(тетрадни) корекции. Имат се
предвид
корекциите
при
използване
на кода “8421”.
Така при
първото
двоично
събиране с
команда ADD се
формират два
резултата –
междинна
двоична сума
и поразрядна
2/10-чна
корекция.
Второто
двоично
събиране с
команда DAA върху
същия
суматор се
извършва
между тези
две числа.
Ще припомним, че поразрядната корекция зависи от 2/10-чния код. Така например, ако този код е “8421”, тетрадната корекция е числото +6. То обаче се добавя само към онези разряди, които след първото двоично събиране са генерирали тетраден пренос или като тетрадна сума представляват “забранена” комбинация. В случай, че кодът е “8421+3”, тетрадната корекция е задължителна за всеки отделен разряд и тя зависи от това, дали съответният разряд е генерирал тетраден пренос. Ако е генерирал, корекцията е числото +3, ако не – числото +13. Както е посочено в раздел 1.6.6, авторът е изследвал и други 2/10-чни кодове, за същността на корекцията на които читателят може да узнае от представените там връзки.
В
процесори,
обработващи
двуцифрени
2/10-чни числа,
двата
тетрадни
преноса
(признака за корекция)
обикновено
се фиксират в
регистъра на
признаците,
съответно в
бит С
от старшата
тетрада, а в
бит Н
– от младшата (вижте фигура 3.2.1.1 или фигура
3.2.1.4).
Числените
примери,
илюстриращи
2/10-чната аритметика
за всеки от
кодовете за
представяне
на
десетичните
цифри,
читателят ще
намери в книга
[2], в
които
неизменно се
изпълнява
съответната
2/10-чна
корекция.
Следващият
раздел е:
3.4.3 Операция
умножение ( Multiplication )