Příznak polovičního přenosu
Author
Albert FloresPříznak polovičního přenosu je speciální symbol nebo značka ve výpočetní technice, která se používá k označení přenosu datových signálů. Tento příznak se používá zejména v sériové komunikaci, kde se data přenášejí po jednom bitu za sebou. Příznak polovičního přenosu se skládá ze tří částí: startovního bitu, datových bitů a stopového bitu. Startovní bit slouží k synchronizaci přenosu dat a indikuje začátek přenosu. Následující datové bity obsahují skutečná data, která se mají přenést. Stopový bit se používá k ukončení přenosu a slouží k indikaci, že se vysílající zařízení přepne do přípravného režimu pro další přenos. Příznak polovičního přenosu je velmi důležitým prvkem sériové komunikace a je široce používán v různých zařízeních, například při přenosu dat mezi počítačem a periferním zařízením, nebo při komunikaci mezi různými výpočetními jednotkami.
Příznak polovičního přenosu ( nebo ) je bit v registru příznaků (stavovém slově) mikroprocesorů, který slouží pro podporu výpočtů s binárně kódovanými desítkovými čísly (BCD). Používají jej mimo jiné mikroprocesory Intel 8080, Zilog Z80, řada mikroprocesorů x86 a Motorola 68000. Příznak indikuje, že došlo k přenosu nebo výpůjčce z bitu 3.
Použití
Prakticky všechny moderní procesory používají binární aritmetiku. Při sčítání dvou 8bitových čísel tak používají pravidla pro binární sčítání. +more Například sečtení 2516 a 4816 dává 6D16. Pro binárně kódované desítkové (BCD) hodnoty, kde každá polovina bytu reprezentuje jednu desítkovou číslici, je sčítání složitější. Například při sčítání desítkových čísel 25 a 48, která jsou zakódována pomocí BCD hodnot 2516 a 4816, dává binární sčítání 6D16; protože nižší čtyři bity výsledku (D) nejsou desítkovou číslicí, je třeba výsledek upravit přičtením hodnoty 0616. Tím získáme správný BCD výsledek 7316, který reprezentuje desítkovou hodnotu 73.
0010 0101 25 + 0100 1000 48 ----------- 0110 1101 6D, binární výsledek + 0110 06, úprava ----------- 0111 0011 73, upravený BCD výsledek
Podobně sečtení BCD hodnot 3916 a 4816 dává 8116. Tento výsledek sice nemá ve spodních čtyřech bitech nedesítkovou hodnotu, ale došlo při něm k přenosu z méně významné číslice (nižších čtyř bitů) do významnější číslice (horní čtyři bity), což je indikováno nastavením příznaku polovičního přenosu. +more Proto i tato hodnota musí být opravena přičtením 0616 až 8116 pro získání správného BCD výsledku 8716.
0011 1001 39 + 0100 1000 48 ----------- 1000 0001 81, binární výsledek + 0110 06, úprava ----------- 1000 0111 87, upravený BCD výsledek
Podobným způsobem se musí postupovat i u vyšší číslice v bytu: pokud sčítání dává nedesítkovou vyšší číslici, musí se k výsledku přičíst 6016 pro získání správného BCD výsledku. Například sečtení 7216 a 7316 dává E516. +more Protože významnější číslice tohoto součtu není desítková (E), je nutné výsledek opravit přičtením hodnoty 6016. Přitom nejvyšší číslice 1 bude uložena do příznaku přenosu. ).
0111 0010 72 + 0111 0011 73 ----------- 1110 0101 E5, binární výsledek + 0110 60, úprava ----------- 1 0100 0101 145, upravený BCD výsledek
Shrnuto: jestliže binární sčítání nastaví příznak polovičního přenosu nebo výsledek obsahuje nedesítkovou nižší číslici, výsledek musí být opraven přičtením 0616; jestliže binární sčítání nastaví příznak přenosu nebo výsledek obsahuje nedesítkovou vyšší číslici, musí být výsledek opraven přičtením 6016. Tyto úpravy provádí instrukce DAA , kterou je třeba provést po sečtení každé dvojice bytů při výpočtech s binárně kódovanými desítkovými čísly.
Odkazy
Reference
Související články
Binárně kódovaná desítková čísla * Příznak přenosu * Registr příznaků
Kategorie:Binární aritmetika Kategorie:Počítačová aritmetika