Scf
Author
Albert Floresscf nebo SCF je instrukce některých procesorů, např. Z80 či ST9. Název instrukce je odvozen z výrazu set carry flag. Instrukce nastavuje hodnotu příznaku přenosu C na logickou jedičku, u podmíněných instrukcí tedy pak platí podmínka C.
Instrukce procesoru Z80
Kód instrukce | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
1. byte | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
Kód instrukce scf je jednobytový, jeho hodnota je 55 desítkově a 37 šestnáctkově. Vykonání instrukce vyžaduje jeden M-cyklus a trvá čtyři T-cykly.
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 scf následována instrukcí ccf. Instrukce ccf mění hodnotu příznaku přenosu na hodnotu opačnou.
Instrukce kromě příznaku přenosu ovlivňuje pouze příznaky, které není možné přímo testovat, jak příznak odečítání N tak příznak polovičního přenosu H jsou po vykonání instrukce scf nastaveny na logickou nulu.
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.
Odpovídající instrukce v instrukční sadě procesoru Intel 8080 je STC.