LDIR

Retrojen Wiki sitesinden
17.18, 30 Nisan 2015 tarihinde Admin (mesaj | katkılar) tarafından oluşturulmuş 112 numaralı sürüm
Gezinti kısmına atla Arama kısmına atla


Komut detayları

Komut Süre (ts) Açıklama Bayrak Etkisi (SZHPNC) Yapılan İş
LDIR (ED B0) 21/16 BC=0 olana kadar LDI uygula. --000- hedef=kaynak


Açıklama

LDIR komutu, bellekteki herhangi bir alani baska bir alana kopyalamak icin kullanilan dongusel komutlardan birisidir.

Calisma sekli:

LDIR komutu yurutulmeden once 3 yazmac gerekli parametreler ile yuklenir.

HL ciftine, kopyalanmak istenen (kaynak) alanin baslangic adresi, DE ciftine hedef alanin baslangic adresi, BC ciftine ise baslangic adresinden itibaren kac byte kopyalanacagi yuklenir.

Ardindan LDIR komutu verilerek kopyalama gerceklestirilir.

Gercekte LDIR komutu üç adımı olan bir işlemdir:

  1. (hl) deki byte'ı (de)'ye kopyalar
  2.  HL ve DE yi arttırır BC'yi eksiltir
  3.  BC = 0 olana kadar bu işlemleri tekrar eder.


Adim adim incelersek, LDIR komutu verildiginde, ilk olarak;

LD (DE),(HL) islemi ile DE'nin isaret ettigi adrese HL'nin isaret ettigi adresteki deger yuklenir.

Ardindan DE ve HL 'nin degerleri 1 arttirilir ve BC 'nin degerinden ise 1 eksiltilir. Dongu kontrol degiskeni olarak BC yazmaci kullanilir ve dongu BC'nin degeri 0 oluncaya kadar tekrar eder. Komutun calisma suresi kopyalanacak byte miktarina bagli olarak değişir.


Örnek Kod

Zx Spectrum ekranını temizlemek:

LD hl,16384  
ld (hl),0
LD de,16385
ld bc, 6143
LDIR

Ayrıca Bakınız

LDI | LDDR | LDD

Komut Ayrımı

LDIR 48/128 -> pc:4,pc+1:4,hl:3,de:3,de:1 x 2,[de:1 x 5]

Kaynakça

Retrojen Üyeleri: Memrah Ref

http://retrojen.org/pano/index.php?topic=539.msg4185#msg4185