8-Blok işlem yapan komutlar/giriş-çıkış komutları
Kaldığımız yerden devam ediyoruz. Blok işlemden kastettiğimiz tek komutla birden fazla işlem yapılmasıdır.
Blok Transfer Komutları
LDI
HL'nin gösterdiği adresin içeriği DE'nin gösterdiği adrese yüklenir, DE ve HL 1 arttırılır BC 1 azaltılır.
Kullanma şekli:
LD HL,Kaynak
LD DE,Hedef
LD BC,Byte Sayacı
LDI
LDI komutunu aşağıdaki komutlar gibi düşünün.
LD A,(HL)
LD (DE),A
INC HL
INC DE
DEC BC
LDIR
LDI gibidir ama işlemler BC=0 oluncaya kadar tekrarlanır.
Kullanma şekli:
LD HL,Kaynak
LD DE,Hedef
LD BC,Byte Sayacı
LDIR
LDIR komutunu aşağıdaki komutlar gibi düşünün.
loop LD A,(HL)
LD (DE),A
INC HL
INC DE
DEC BC
LD A,B
OR C
JR NZ,loop
LDD
HL'nin gösterdiği adresin içeriği DE'nin gösterdiği adrese yüklenir, DE, HL ve BC 1 azaltılır.
Kullanma şekli:
LD HL,Kaynak
LD DE,Hedef
LD BC,Byte Sayacı
LDI
LDD komutunu aşağıdaki komutlar gibi düşünün.
LD A,(HL)
LD (DE),A
DEC HL
DEC DE
DEC BC
LDDR
LDD gibidir ama işlemler BC=0 oluncaya kadar tekrarlanır.
Kullanma şekli:
LD HL,Kaynak
LD DE,Hedef
LD BC,Byte Sayacı
LDIR
LDDR komutunu aşağıdaki komutlar gibi düşünün.
loop LD A,(HL)
LD (DE),A
DEC HL
DEC DE
DEC BC
LD A,B
OR C
JR NZ,loop
Blok Karşılaştırma Komutları
CPI
Aküdeki değer ile HL registerinin gösterdiği adresin içeriği karşılaştırılır. Sonuç aynıysa Z flag "1" olur. HL 1 arttırılır, BC 1 azaltılır.
Kullanma şekli:
LD HL,adres
LD A,Sayı
LD BC,Bayt sayacı
CPI
CPI komutunu aşağıdaki komutlar gibi düşünün.
CP (HL)
INC HL
DEC BC
CPIR
CPI gibidir. İşlemler A=(HL) veya BC=0 oluncaya kadar tekrarlanır.
Kullanma şekli:
LD HL,adres
LD A,Sayı
LD BC,Bayt sayacı
CPIR
CPIR komutunu aşağıdaki komutlar gibi düşünün.
loop CP (HL)
JR Z,bitir
INC HL
DEC BC
LD A,B
OR C
JR NZ,loop
....
bitir ....
CPD
Aküdeki değer ile HL registerinin gösterdiği adresin içeriği karşılaştırılır. Sonuç aynıysa Z flag "1" olur. HL ve BC 1 azaltılır.
Kullanma şekli:
LD HL,adres
LD A,Sayı
LD BC,Bayt sayacı
CPD
CPD komutunu aşağıdaki komutlar gibi düşünün.
CP (HL)
DEC HL
DEC BC
CPDR
CPD gibidir. İşlemler A=(HL) veya BC=0 oluncaya kadar tekrarlanır.
Kullanma şekli:
LD HL,adres
LD A,Sayı
LD BC,Bayt sayacı
CPIR
CPIR komutunu aşağıdaki komutlar gibi düşünün.
loop CP (HL)
JR Z,bitir
DEC HL
DEC BC
LD A,B
OR C
JR NZ,loop
....
bitir ....
Giriş / Çıkış komutları daha sonra.