JR nebo jr je instrukce procesorů Z80. Instrukce provádí relativní skok (relative jump) na adresu v rozsahu -126 až +129 bytů od umístění instrukce. Cíl skoku se obvykle uvádí formou návěstí. Instrukce existuje i ve variantách provádějící skok při splnění podmínky na základě stavu registru příznaků. Instrukce je základním prostředkem pro vytváření cyklů (smyček).

Reálně instrukce zadané číslo se znaménkovým bitem přičítá k registru PC, tedy čítači instrukcí. Čítač ukazuje na instrukci následující po dvoubajtové instrukci jr, proto je číselný rozsah -128 až +127 o dva bajty posunutý.

Nepodmíněný skok 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ů. 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

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

Podmíněný skok 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.

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 zakódová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.

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.

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

Umístění instrukcí jr v souboru instrukcí 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              

djnz Instrukce djnz N (decrement jump non zero, „sniž, skok pokud není nula“) provádí stejnou činnost jako posloupnost instrukcí dec b a jr nz, N, tedy sníží o jednu hodnotu registru b a opakuje skok, dokud není b rovno nule. Používá se pro smyčky s počtem opakování určeným registrem b (max. 256), jeho výhodou je, že je kratší a rychlejší (úspora 1 byte a 3 T-cykly).

Reference

Literatura

Související články jp

Kategorie:Z80