Příznak polovičního přenosu: Porovnání verzí

Smazaný obsah Přidaný obsah
Vytvoření stránky překladem z angličtiny
 
m Robot: vhodnější šablona dle žádosti ze dne 25. 4. 2020
Řádek 1:
'''Příznak polovičního přenosu''' ({{Vjazyce|en}} {{CizojazyčněVjazyce2|en|''Half-carry flag''}}, {{Cizojazyčně|en|''Adjust flag''}} nebo {{Cizojazyčně|en|''Auxiliary flag''}}) je [[bit]] v [[registr příznaků|registru příznaků]] (stavovém slově) [[mikroprocesor]]ů, který slouží pro podporu výpočtů s [[BCD|binárně kódovanými desítkovými čísly]] (BCD). Používají jej mimo jiné [[mikroprocesor]]y [[Intel 8080]], [[Zilog Z80]], řada mikroprocesorů [[x86]]<ref name="intel">{{Citace elektronické monografie | url = http://download.intel.com/design/PentiumII/manuals/24319102.PDF | formát = PDF | titul = Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual | datum přístupu = 2017-11-23}}</ref> a [[Motorola 68000]]<ref name="moto">{{Citace elektronické monografie | url = http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf | formát = PDF | titul = Motorola MC68000 Family Programmer's Reference Manual | datum přístupu = 2017-11-23}}</ref>. Příznak indikuje, že došlo k [[Přenos a výpůjčka|přenosu nebo výpůjčce]] z bitu 3.
 
== Použití ==
 
Prakticky všechny moderní procesory používají [[Dvojková soustava|binární aritmetiku]]. Při sčítání dvou 8bitových čísel tak používají pravidla pro binární sčítání. Například sečtení 25{{sub|16}} a 48{{sub|16}} dává 6D{{sub|16}}. Pro [[BCD|binárně kódované desítkové]] (BCD) hodnoty, kde každá polovina [[Bajt|bytu]] ({{Vjazyce|en}} {{CizojazyčněVjazyce2|en|''nibble''}}) 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 25{{sub|16}} a 48{{sub|16}}, dává binární sčítání 6D{{sub|16}}; protože nižší čtyři bity výsledku (D) nejsou desítkovou číslicí, je třeba výsledek upravit přičtením hodnoty 06{{sub|16}}. Tím získáme správný BCD výsledek 73{{sub|16}}, který reprezentuje desítkovou hodnotu 73.
 
0010 0101 25
Řádek 33:
'''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 06{{sub|16}}; 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 60{{sub|16}}. Tyto úpravy provádí instrukce <code>DAA</code> ({{Vjazyce|en}} {{CizojazyčněVjazyce2|en|''Decimal adjust after addition''}}), 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.<ref>{{Citace elektronické monografie | url = http://www.nj7p.org/Manuals/PDFs/Intel/9800301D.pdf | formát = PDF | titul = 8080/8085 Assembly Language Programming Manual | vydavatel = Intel | rok = 1977, 1978, 1979, 1981 | město = Santa Clara, California | datum přístupu = 2017-11-23}}</ref>
 
== Odkazy ==