JR

Retrojen Wiki sitesinden
22.39, 22 Ağustos 2014 tarihinde Admin (mesaj | katkılar) tarafından oluşturulmuş 12 numaralı sürüm (Yeni sayfa: "category:Z80 İşlemci Komutları category:Sıçrama Komutları == Komut Detayları == {| class="wikitable" |- ! Komut ! Süre (ts) ! Açıklama ! Bayrak Etkisi...")
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)
Gezinti kısmına atla Arama kısmına atla


Komut Detayları

Komut Süre (ts) Açıklama Bayrak Etkisi Yapılan İş
JR C,n 12,7 Elde=1 (carry=1) ise PC+n'ye göreli zıpla. -------- c=1 ise PC=PC+n
JR n 12 PC+n'ye koşulsuz göreli zıpla. -------- PC=PC+n
JR NC,n 12,7 Elde=0 (carry=0) ise PC+n'ye göreli zıpla -------- c=0 ise PC=PC+n
JR NZ,n 12,7 Sıfır değil (Z=0) ise PC+n'ye göreli zıpla. -------- z=0 ise PC=PC+n
JR Z,n 12,7 Sıfır (Z=1) ise PC+n'ye göreli zıpla. -------- z=1 ise PC=PC+n

Açıklama ve Örnekler

Bu sıçrama komutlarında, hedef adresin kendisi değil, adrese olan uzaklık belirtilir. Bu uzaklık parametresi -geçen derste gördüğümüz "d:mesafe" ile gösterilir- 0-127 arasındaysa, şıçrama ileri yöndedir. 128-255 arasında ise geri yöndedir. Dolayısıyla bu komutlarla ancak program içerisinde kısa mesafelere sıçrayabilirsiniz.

Sapılacak adres gerideyse kaç bayt olduğu 256-d formülüyle bulunur. Programlarımızı yazarken etiket kullandığımız için kaç bayt ileri veya geri gittiğimiz program derlenirken hesaplanır. Eğer mesafe sınırlar dışındaysa derleyici hata verecektir. Göreceli sıçrama komutu JR ile gösterilir ve Jump Relative'nin kısaltmasıdır. Eğer yazdığınız program kısa ve programı sürekli çalıştıracaksanız JR komutunu, uzunsa JP komutunu kullanabilirsiniz.

Örnek :
start ld a,0
loop1 ld b,1
...
...  Aradaki program 128 bayttan uzun olmamalıdır.
...
jr loop1

Zx Spectrum ULA için komut detayı

JR cc,n 
JR n 	
(48k/+2) pc:4,pc+1:3,[pc+1:1 x 5] 	(+2AB/+3)pc:4,pc+1:3,[5]

Ayrıca Bakınız

  • Z80 İşlemci Komutları DJNZ JP