DJNZ: Revizyonlar arasındaki fark

Retrojen Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Yeni sayfa: "category:Z80 İşlemci Komutları category:Sıçrama Komutları == Komut detayları == {| class="wikitable" |- ! Komut ! Süre (ts) ! Açıklama ! Bayrak Etkisi !..."
 
Değişiklik özeti yok
 
1. satır: 1. satır:
[[category:Z80 İşlemci Komutları]]
[[category:Z80 İşlemci Komutları]]
[[category:Sıçrama Komutları]]
[[category:Sıçrama Komutları]]
[[category:Karşılaştırma Komutları]]


== Komut detayları ==
== Komut detayları ==

22.57, 30 Kasım 2014 itibarı ile sayfanın şu anki hâli


Komut detayları

Komut Süre (ts) Açıklama Bayrak Etkisi Yapılan İş
DJNZ n 13,8 B'yi bir azalt, B sıfır olmadı ise göreli sıçra. -------- B=0 olana kadar B=B-1 ve göreli sıçra


Açıklama

DJNZ kısaltmasının açılımı şu şekildedir: "Decrease and Jump if Not Zero" (azalt ve sıfır olmadıysa sıçra).

DJNZ mesafe komutu özel olarak B registeri içindir. B registerinin değerini bir azalt, registerin değeri "0" olmadıysa göreli sıçra demektir.

Dikkat edilmesi gereken nokta djnz B'yi önce azaltıp sonra test eder. Yani B değeri 1 ise, DJNZ B'yi 0'a getirip, sıçramaz, sonraki komuttan devam edilir. Bu durumda B=8 ise, aradaki döngünün kapsadığı kod 9 değil, 8 kere tekrar edilecektir.

Örnek Kod

DJNZ, basic'deki for...next döngüsüne benzer. Örnek:


       ld B,16    ; For b=16 to 1 STEP -1 gibi
       loop1
       
       ...        ; Buraya tekrar edecek kodu ekleyin
      
       DJNZ loop1


B'ye yüklediğiniz rakam kadar tur atacak bu program.

Tabiiki bu halde maksimum 255 tekrar yapılabilir.

Kaynak: http://retrojen.org/pano/index.php?topic=189.msg1122#msg1122

Ayrıca Bakınız

JR | JP

Zx Spectrum Ula Gecikmesi Komut Detayı

DJNZ n(48k/+2) pc:4,ir:1,pc+1:3,[pc+1:1 x 5] = 8/13ts , (+2AB/+3) pc:5,pc+1:3,[5] = 8/13ts (ir gecikmesi yoktur)