scf

scf nebo SCF je instrukce některých procesorů, např. Z80 či ST9[1]. Název instrukce je odvozen z výrazu set carry flag.[2] 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
76543210
1. byte00110111

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.[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 scf následována instrukcí ccf.[2] 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.[3][4][2]

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 STC.[8]

Reference

  1. MONEY, Steve A. Microprocessor Data Book. [s.l.]: Academic Press, Inc., 1990. (2nd edition). Dostupné online. ISBN 0-12-504445-3. Kapitola SGS-Thompson ST9 Microcontroller, s. 104–105. ((anglicky)) 
  2. a b c VILÍM, Tomáš. Assembler a ZX Spectrum, 1. díl. Ústí nad Labem: Proxima - Software, 1992. 
  3. a b ZAKS, Rodnay. Programming the Z80. [s.l.]: Sybex, 1981. 624 s. (Third edition). Dostupné online. ISBN 0-89588-094-6. S. 424. ((anglicky))  Poznámka: Odkazovaný soubor má desky z jiného vydání knihy, které navíc vyšlo i pod jiným názvem a s jiným ISBN
  4. a b 8ビット CPU Z80命令セット [online]. Rev. 2015-08-23 [cit. 2015-12-31]. Kapitola ビット操作. Dostupné online. ((japonsky)) 
  5. CIARCIA, Steve. Build Your Own Z80 Computer: Design Guidelines and Application Notes. [s.l.]: [s.n.], 1981. Dostupné online. ISBN 0-07-010962-1. Kapitola General purpose arithmetic and CPU control groups, s. 60–63. ((anglicky)) 
  6. Z80 Archivováno 25. 12. 2015 na Wayback Machine. na Sinclair FAQ, vyd. 2011-06-03, akt. 2015-09-30, cit. 2016-01-08
  7. SCF/CCF flags - new discovery na World of Spectrum, cit. 2016-01-08
  8. DURDA, Frank. 8080/Z80 Instruction Set [online]. [cit. 2016-01-08]. Kapitola Special Accumulator and Flag Instructions. Dostupné v archivu pořízeném dne 2016-02-11. ((anglicky))