Ccf
From Wikipedia, the free encyclopedia
Remove ads
ccf nebo CCF je instrukce některých procesorů, např. Z80 či ST9[1]. Název instrukce je odvozen z výrazu complement carry flag.[2] Instrukce nastavuje hodnotu příznaku přenosu C na hodnotu opačnou než je hodnota aktuální.
Instrukce procesoru Z80
Kód instrukce scf je jednobytový, jeho hodnota je 63 desítkově a 3F šestnáctkově. Vykonání instrukce vyžaduje jeden M-cyklus a trvá čtyři T-cykly.[3][4][5]
Instrukci je nutné použít v případě, kdy je požadováno nastavení příznaku přenosu na logickou nulu a současně nesmí dojít k ovlivnění ostatních příznaků, v tomto případě musí být instrukce ccf předcházena instrukcí scf.[2] Instrukce scf nastavuje hodnotu příznaku přenosu na logickou jedničku.
Instrukce kromě příznaku přenosu ovlivňuje pouze příznaky, které není možné přímo testovat, příznak znaménka N je po vykonání instrukce ccf nastaven na logickou nulu a i příznak polovičního přenosu H je ovlivněn.[2][3][4]
V roce 2012 se věnoval zkoumání funkce procesoru Z80 český programátor Patrik Rak a objevil, že pokud nějaká instrukce procesoru nastavuje některý z příznaků v registru F, následující instrukce scf nebo ccf pouze přenese stav bitů 3 a 5 registru A do odpovídajících bitů registru F, zatímco pokud instrukce procesoru nenastavuje žádný příznak, následující instrukce scf nebo ccf do bitů 3 a 5 registru F uloží výsledek operace OR odpovídajících bitů registru A a registru F.[6][7]
Odpovídající instrukce v instrukční sadě procesoru Intel 8080 je CMC.[8]
Remove ads
Reference
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads