BCD i BIN formát čísel hraje v jakémkoli mikropočítači důležitou roli. BCD formát se používá k výpisu na displaye, vstup konstant atd.. BIN formát používá většina výpočetních rutin atd..
Přinášíme vám dva příklady pro převod z BIN do BCD formátu. Obě rutiny se liší algoritmem zpracování problému. První příklad používá dělení 100, zatímco druhý algoritmus Hornerova schématu.
Algoritmus používající dělení :
Podprogram pro převod binárního čísla, uloženého v akumulátoru, na
dekadické číslo v BCD kódu. Výsledné číslo uloženo na paměťová
místa se symbolickými názvy STOVKY a DESJED.
Protože je procesor 8051 vybaven instrukcí dělení, můžeme převod realizovat dělením hodnoty
uložené v akumulátoru hodnotou 100. Celočíselný zbytek z prvního dě-lení
vydělíme hodnotou 10 a celočíselný zbytek po druhém dělení představuje jednotky
hledaného čísla.
Pokud máte hotové podobné SW rutiny, které chcete publikovat, pošlete nám je pokoušíme se zde vytvořit knihovnu podobných utilit.
BINBCD: ORG 30H DESJED: DS 1H ; paměť desítek
(bity 7÷4) a jednotek (3÷0) ;Stazeno z www.HW.cz |
Algoritmus používající Hornerovo schéma :
Stejný program jako v předchozím příkladě bez použití instrukce dělení a
metody postupného odečítání mocnin základu 10. Není-li procesor
vybaven instrukcí dělení nebo převáděné číslo je dlouhé, pak lze k
zajištění stejného převodu využít algoritmu vycházejícího z
tzv.Hornerova schématu. Každé číslo ve dvojkové soustavě můžeme vyjádřit
výrazem který vyjadřuje hledané číslo jako postupný součet dvou
stejných čísel (.2) s hodnotou 0 nebo 1.
Jsou-li dvě čísla v BCD formátu (např.0), potom na jejich součet s přičtením hodnoty 0 nebo
1 může být aplikována instrukce dekadické korekce, která koriguje rozdíl mezi
součtem dekadických čísel v binární sčítačce (v procesoru) a dekadické
sčítačce (přenos do dalšího řádu je generován po dosažení modulu 10).
Navržený algoritmus má proti metodě postupného odečítání mocnin
základu konstantní dobu trvání nezávislou na převáděném
čísle. Při převodu využijeme registry R2 a R1 jako 16 bitový posuvný registr
obsahující na konci algoritmu výsledek, registr R3 jako dočasnou paměť
převáděného čísla a registr R4 jako počitadlo cyklů (posunů).
Pokud máte hotové podobné SW rutiny, které chcete publikovat, pošlete nám je pokošíme se zde vytvořit knihovnu podobných utilit. - INFORMACE PRO AUTORY
;NIČÍ: A, R1, R2, R3, R4,
Příznaky BINBCD: CYKL: ;Stazeno z www.HW.cz |
DOWNLOAD rutin v .ZIP souboru