LDIR: Revizyonlar arasındaki fark
Değişiklik özeti yok |
Değişiklik özeti yok |
||
55. satır: | 55. satır: | ||
ld bc, 6143 | ld bc, 6143 | ||
LDIR | LDIR | ||
== Komut Ayrımı == | == Komut Ayrımı == | ||
69. satır: | 65. satır: | ||
http://retrojen.org/pano/index.php?topic=539.msg4185#msg4185 | http://retrojen.org/pano/index.php?topic=539.msg4185#msg4185 | ||
== Ayrıca Bakınız == | |||
[[LDI]] | [[LDDR]] | [[LDD]] |
17.19, 30 Nisan 2015 itibarı ile sayfanın şu anki hâli
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
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
http://retrojen.org/pano/index.php?topic=539.msg4185#msg4185