rlc

instrukce procesorů Intel 8080 a Z80
Tento článek pojednává o instrukci procesorů. Možná hledáte: RLC – Rezonanční obvod.

rlc nebo RLC je instrukce procesorů Intel 8080 a Z80.

Instrukce procesoru Intel 8080 editovat

Instrukce RLC je odpovídající instrukci rlca, resp. instrukci rlc a procesoru Z80.[1]

Instrukce procesoru Z80 editovat

7 6 5 4 3 2 1 0
C

Název instrukce je tvořen prvními písmeny významu instrukce Rotate Left Circular.[2] Instrukce provádí přesun (rotaci) bitů ve směru z méně významné pozice na více významnou pozici.[2][3] Bit z nejvíce významné pozice (7) je přesunut na nejméně významnou pozici (0). Kromě toho je hodnota bitu z nejvíce významné pozice zkopírována i do příznaku přenosu.[2][3] Instrukce může pracovat jak s registrem, tak s místem v paměti. V instrukční sadě procesoru Intel 8080 existuje stejnojmenná instrukce RLC ale ta je pouze omezenou varianou instrukce rlc procesoru Z80, protože pracuje pouze s akumulátorem. Odpovídá tak instrukci rlc a a svým instrukčním kódem odpovídá instrukci rlca procesoru Z80.[1]

Rotace hodnoty v registru editovat

Rotace hodnoty v registru
rlc a rlc b rlc c rlc d rlc e rlc h rlc l

Instrukce slouží k rotaci hodnoty registru. Délka instrukce je dva byty, první byte je prefix CB.

Kód instrukce
7 6 5 4 3 2 1 0
1. byte 1 1 0 0 1 0 1 1
2. byte 0 0 0 0 0 registr

Obecně je možné tuto instrukci zapsat jako rlc r, kde r je zástupný symbol pro některý z registrů procesoru A, B, C, D, E, H a L. Instrukce ke svému vykonání potřebuje 2 M-cykly a doba jejího vykonání trvá 8 T-cyklů.[4] Registr, se kterým instrukce pracuje, zakódován v nultém až druhém bitu druhého bajtu operačního kódu instrukce. Tato trojice bitů je jednotlivým registrům přiřazena jako: 111 - registr A , 000 - registr B, 001 - registr C, 010 - registr D, 011 - registr E, 100 - registr H, 101 - registr L.[5] Kombinace bitů označujících registr může nabývat i hodnoty 110, v tomto případě se jedná o instrukci rlc, která ale místo s registrem pracuje s paměťovým místem na adrese HL (viz níže). V instrukční sadě procesoru se nachází instrukce rlca, která provádí stejnou akci jako instrukce rlc a, ale je vykonána rychleji.[2]

Rotace hodnoty v paměti editovat

Rotace hodnoty v paměti
rlc (hl) rlc (ix±N) (iy±N)

Instrukce slouží k rotaci hodnoty v paměťovém místě. Adresa v paměti, jejíž obsah je rotován, může být určena buď hodnotou registru HL nebo hodnotou indexového registru IX nebo registru IY a offsetem.

Kód instrukce při adresování registrem HL
7 6 5 4 3 2 1 0
1. byte 1 1 0 0 1 0 1 1
2. byte 0 0 0 0 0 1 1 0

V případě, kdy je k adresaci použit registr HL, je délka instrukce dva byty, první byte je prefix CB. Instrukce ke svému vykonání potřebuje 4 M-cykly a doba jejího vykonání trvá 15 T-cyklů.[4]

Kód instrukce při adresování indexovým registrem
7 6 5 4 3 2 1 0
1. byte 1 1 X 1 1 1 0 1
2. byte 1 1 0 0 1 0 1 1
3. byte offset
4. byte 0 0 0 0 0 1 1 0

Pokud je k adresaci použit indexový registr, je délka instrukce čtyři byty, první byte je prefix IX (X = 0) nebo prefix IY (X = 1) následovaný prefixem CB a offsetem. Posledním bytem je vlastní instrukce. Instrukce ke svému vykonání potřebuje 6 M-cyklů a doba jejího vykonání trvá 23 T-cyklů.[4]

Umístění instrukcí rlc v souboru instrukcí editovat

Rozmístění instrukcí rlc v instrukčním souboru procesoru Z80
Instrukce na šedém podkladu jsou nedokumentované instrukce
## .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
0.               rlca                
Po prefixu CB
0. rlc b rlc c rlc d rlc e rlc h rlc l rlc (hl) rlc a                
Po prefixu IX a prefixu CB
0. rlc (ix±N),b rlc (ix±N),c rlc (ix±N),d rlc (ix±N),e rlc (ix±N),h rlc (ix±N),l rlc (ix±N) rlc (ix±N),a                

Reference editovat

  1. a b DURDA, Frank. 8080/Z80 Instruction Set [online]. [cit. 2023-03-30]. Dostupné v archivu pořízeném dne 2016-02-11. ((anglicky)) 
  2. a b c d VILÍM, Tomáš. Assembler a ZX Spectrum, 1. díl. Ústí nad Labem: Proxima - Software, 1992. 
  3. a b NAYLOR, Jeff; ROGERS, Diane. Inside your Spectrum. London: Sunshine Books, 1984. Dostupné online. ISBN 0-946408-35-1. Kapitola Language for Machines. ((anglicky)) 
  4. a b c ZAKS, Rodnay. Programming the Z80. [s.l.]: Sybex, 1981. 624 s. (Third edition). Dostupné online. ISBN 0-89588-094-6. S. 291–347. ((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
  5. 8ビット CPU Z80命令セット [online]. Rev. 2019-09-15 [cit. 2023-03-30]. Dostupné online. ((japonsky)) 

Související články editovat