jr

instrukce procesoru Z80

jr nebo JR je instrukce procesorů Z80. Instrukce provádí skok na hodnotu v rozsahu -126 až 129 bytů od umístění instrukce.[1] Instrukce existuje ve variantě provádějící skok nepodmíněně a ve variantách provádějící skok při splnění podmínky.

Nepodmíněný skok

editovat
Nepodmíněný skok
jr N
Kód instrukce
7 6 5 4 3 2 1 0
1. byte 0 0 0 1 1 0 0 0
2. byte konstanta

Obecně lze instrukci zapsat jako jr N. Délka instrukce je dva byty, druhý byte obsahuje hodnotu konstanty. Hodnota prvního bytu je 24 desítkově a 18 šestnáctkově. Vykonání instrukce vyžaduje tři M-cykly a trvá dvanáct T-cyklů.[2][3]

Odpovídající instrukce v instrukční sadě procesoru Intel 8080 není.[4]

Podmíněný skok

editovat
Podmíněný skok
jr NZ,N jr Z,N jr NC,N jr C,N

Instrukce provádí skok pouze v případě splnění podmínky. Obecně lze instrukci zapsat jako jr p, N, kde p je zástupný symbol pro testovaný příznak. Na rozdíl od instrukcí jp, kde jako podmínku lze použít všechny čtyři příznaky, u instrukcí jr lze testovat pouze příznaky příznak přenosu C a příznak nuly Z.[1]

Kód instrukce
7 6 5 4 3 2 1 0
1. byte 0 0 1 příznak 0 0 0
2. byte konstanta

Délka instrukce je dva byty. V prvním bytu je zákodována podmínka, při jejíž splnění se skok provede, druhý byte obsahuje hodnotu konstanty. Vykonání instrukce vyžaduje tři M-cykly a trvá dvanáct T-cyklů v případě splnění podmínky a provedení skoku a dva M-cykly a trvá sedm T-cyklů v případě nesplnění podmínky a neprovedení skoku.[2][3]

Příznak, který je před případným provedením skoku testován, je zakódován ve třetím a čtvrtém bitu operačního kódu instrukce. Tato dvojice je jednotlivým podmínkám přiřazena jako 00 - NZ, 01 - Z, 10 - NC, 11 - C.[2]

Odpovídající instrukce v instrukční sadě procesoru Intel 8080 není.[4]

Umístění instrukcí jr v souboru instrukcí

editovat
Rozmístění instrukcí jr v instrukčním souboru procesoru Z80
## .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
1.                 jr N              
2. jr NZ,N               jr Z,N              
3. jr NC,N               jr C,N              

Reference

editovat
  1. a b VILÍM, Tomáš. Assembler a ZX Spectrum, 1. díl. Ústí nad Labem: Proxima - Software, 1992. 
  2. a b c 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
  3. a b Rev. 2019-09-15 [cit. 2023-04-06]. Dostupné v archivu pořízeném dne 2023-05-09. ((japonsky)) 
  4. a b DURDA, Frank. 8080/Z80 Instruction Set [online]. [cit. 2023-04-06]. Kapitola Special Accumulator and Flag Instructions. Dostupné v archivu pořízeném dne 2016-02-11. ((anglicky)) 

Literatura

editovat
  • Príručka strojového kódu pre ZX Spectrum. [s.l.]: Ultrasoft, 1993. 

Související články

editovat