INSTRUKSI LOGIKA
v Instruksi logika pada Z80 ada 3 yaitu AND, OR dan EXCLUSIVE OR
v Dapat menggunakan addressing mode = register, register indirect, immediate
A. ISNTRUKSI AND
Tabel kebenaran AND
A | B | C | |
0 | 0 | 0 | |
1 | 0 | 0 | |
0 | 1 | 0 | |
1 | 1 | 1 |
A AND 0 = 0
A AND 1 = A
AND s
A ß A ˆs artinya operasi logika AND . Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada AKUMULATOR, hasilnya disimpan pada AKUMULATOR.
1. AND data segera dengan AKUMULATOR
AND data ; A ß A AND data
E6 yy
2. AND Register dengan AKUMULATOR
AND Reg ; A ß A AND reg
1010 0xxx
A 000 = reg B
001 = reg C
010 = reg D
011 = reg E
100 = reg H
101 = reg L
111 = reg A
3. AND isi memori dengan AKUMULATOR
AND ( HL) A6
AND ( IX + disp ) DD A6 dd
AND ( IY + disp ) FD A6 dd
B. INSTRUKSI OR
A | B | C | |
0 | 0 | 0 | |
1 | 0 | 1 | |
0 | 1 | 1 | |
1 | 1 | 1 |
A OR 1 = 1
A OR 0 = A
OR s
A ß ˇs Operasi logika OR. Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada AKUMULATOR, hasilnya disimpan pada AKUMULATOR.
1. OR data segera dengan AKUMULATOR
OR data A ß A OR DATA
F6 yy
2. OR register dengan AKUMULATOR
OR reg A ß A OR REG
1011 1xxx
B 000 = reg B
001 = reg C
010 = reg D
011 = reg E
100 = reg H
101 = reg L
111 = reg A
3. OR isi memori dengan AKUMULATOR
OR ( HL ) B6
OR ( IX + disp ) DD B6 dd
OR ( IY + disp ) FD B6 dd
C. INSTRUKSI EXCLUSIVE OR
Tabel kebenaran XOR
A | B | C | |
0 | 0 | 0 | |
1 | 0 | 1 | |
0 | 1 | 1 | |
1 | 1 | 0 |
A XOR A = 0
A XOR 0 = A
A XOR 1 = Ā
XOR a A A s
Operasi logika EXOR. Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada akumulator, hasilnya disimpan pada AKUMULATOR.
1. EXCLUSIVE OR data segera dengan AKUMULATOR
XOR data
EE yy
2. EXCLUSIVE OR register dengan AKUMULATOR
XOR reg
1010 1xxx
A 000 = reg B
001 = reg C
010 = reg D
011 = reg E
100 = reg H
101 = reg L
111 = reg A
3. EXCLUSIVE OR isi memori dengan AKUMULATOR
XOR ( HL ) AE
XOR ( IX + disp ) DD AE dd
XOR ( IY + disp ) FD AE dd
D. INSTRUKSI NOT
Tabel kebenaran NOT
A | C | |
0 | 1 | |
1 | 0 |
A CPL = Ā
CPL
Isi akumulator dibalikan ( inverted ). 0 menjadi 1 dan 1 menjadi 0 (1 komplemen).
E. INSTRUKSI ROTASI
RLA

Isi AKUMULATOR dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1 isi bit 1 yang terdahulu dipindahkan ke bit 2 dan seterusnya. Isi bit 7 dicopy pada flag carry dan juga ke bit 0 (bit 0 adalah bit berorde paling rendah).
RLCA

Isi AKUMULATOR dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1 isi bit 1 yang terdahulu dipindahkan ke bit 2 dan seterusnya. Isi bit 7 dicopy pada flag carry dan isi flag carry terdahulu dicopy ke 0.
RRA

Isi AKUMULATOR dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 terdahulu dipindah ke bit 5, dan seterusnya. Isi bit 0 dicopy ke bit 7 dan juga ke flag carry.
RRCA

Isi AKUMULATOR dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 terdahulu dipindah ke bit 5, dan seterusnya. Isi bit 0 dicopy ke flag carry dan isi flag carry yang terdahulu dicopy ke bit 7.
RLA r

Isi register r (8 bit) dirotasi ke kiri, isi bit 0 dipindahkan ke 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLA (HL)

Isi memori yang ditunjuk oleh pasangan register HL dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLA (IX+d)

Isi memori pada lokasi yang ditunjuk oleh jumlah isi register indeks IX dan bilangan bulat penggeser 2 komplemen d dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLA (IY+d)

Isi memori pada lokasi yang ditunjuk oleh jumlah isi register indeks IY dan bilangan bulat penggeser 2 komplemen d dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLC m

Operand m adalah salah satu dari r, (HL), (IX+d), (IY+d), seperti yang telah dijelaskan pada instruksi RLC. Isi operand m dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag dan isi flag carry yang terdahulu dicopy ke 0.
RRA m

Isi dari operand m dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 yang terdahulu dicopy ke bit 5 dan seterusnya. Isi bit 0 dicopy ke flag carry dan juga ke bit 7.
RRC m

Isi dari operand m dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 yang terdahulu dicopy ke bit 5 dan seterusnya. Isi bit 0 dicopy ke flag carry dan isi flag carry yang terdahulu di copy ke bit 7.
RLD

Isi 4 bit berorde rendah (bit 3, 2, 1, 0) dari memori yang lokasinya ditunjukan oleh isi pasangan register HL dicopy ke 4 bit berorde tinggi (bit 7, 6, 5, 4) dari lokasi memory yang sama, isi ke 4 bit berorde tinggi terdahulu dicopy ke 4 bit akumulator berorde rendah dari memori pada lokasi yang ditunjukan oleh HL. Isi bit-bit akumulator berorde tinggi tidak terpengaruh.
RRD

Isi 4 bit berorde rendah (bit 3, 2, 1, 0) dari memori yang lokasinya ditunjukan oleh isi pasangan register HL dicopy ke 4 bit berorde tinggi (bit 7, 6, 5, 4) pada memori yang lokasinya ditunjukan oleh pasangan register HL, dan isi 4 bit berorde tinggi dari (HL) dicopy ke 4 bit (HL) yang rendah. Isi 4 bit akumulator berorde tinggi tidak terpengaruh. Catatan : (HL) berarti memori yang lokasinya ditunjuk oleh isi pasangan register HL.
F. INSTRUKSI SHIFT
SLA m

Pergeseran aritmatik ke kiri dilaksanakan pada isi operand m, bit 0 direset, isi bit 0 terdahulu dipindahkan ke bit 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry.
SRA m

Pergeseran aritmatik ke kanan dilaksanakan pada isi operand m, isi bit 7 terdahulu dipindahkan ke bit 6, isi bit 6 terdahulu dipindahkan ke bit 5 dan seterusnya, isi bit 0 dipindahkan ke flag carry. Isi bit 7 yang terdahulu tidak berubah.
SRL m

Pergeseran aritmatik ke kanan dilaksanakan pada isi operand m, isi bit 7 terdahulu dipindahkan ke bit 6, isi bit 6 terdahulu dipindahkan ke bit 5 dan seterusnya, isi bit 0 dipindahkan ke flag carry. Isi bit 7 direset ke 0.