3.4.2   Операция двоично-десетична корекция

Binary-decimal correction

 

 

      Както беше отбелязано в началото на §3.4, операция събиране (изваждане) на двоично кодирани десетични числа може да се декомпозира на две изпълними двоични операции. По същество тези операции са операции от тип събиране и с тяхна помощ върху двоичния суматор, който е задължителен за всяко АЛУ, се моделира двуетажната логическа структура на 2/10-чния суматор, чийто синтез е изложен подробно в книга [2].

      Фактическото събиране на две 2/10-чни числа в двоичното АЛУ на конвенционален процесор се постига чрез машинна програма от две машинни команди – една за двоично събиране (обикновено с мнемокод ADD - Add) и втора за 2/10-чна корекция (обикновено с мнемокод DAADecimal 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 )