Anda di halaman 1dari 12

Operasi Logika

4.1. Pendahuluan
Di dalam mikroprosesor Z80, terdapat 3 buah operasi logika, yaitu
AND, OR, dan XOR. Instruksi AND, OR, dan XOR dapat digunakan untuk
melakukan operasi logika antara isi register A (accumulator) dengan data
register 8 bit atau data 8 bit langsung atau data yang tersimpan pada alamat
memori.

4.2. Register Flag di Operasi Logika


Register flag merupakan register pembantu terhadap operasi
aritmatika dan operasi logika. Bantuk bantuannya berupa manyimpan tanda
keadaan bilamana terjadi carry, non carry, borrow, zero, parity/overflow.
Letak definisi keadaan flag pada register F dapat dilukiskan sebagai berikut:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
S Z - H - P/V N C

Keterangan:
S : sign
Z : zero
H : half carry
P/V : parity/overflow (=P/O)
N : non carry
C : carry

Dengan adanya operasi aritmatika atau logika, maka kejadian dari


register F dapat dibuat tabel sebagai berikut:
Bit Nama Flag Keterangan
0 C 0 : operasi aritmatika/logika tidak terjadi carry
1 : operasi aritmatika/logika terjadi carry
1 N 0 : operasi yang telah terjadi bukan substract

BAB 4. Operasi Logika 79


1 : operasi yang telah terjadi adalah substract
2 P/V 0 : parity even/genap tidak terjadi overflow
1 : parity old/ganjil terjadi overflow
3 - TIDAK DIGUNAKAN
4 H 0 : add/substract non carry di bit 4 register A
1 : add/substract ada carry di bit 4 register A
5 - TIDAK DIGUNAKAN
6 Z 0 : hasil operasi aritmatika/logika tidak nol
1 : hasil operasi aritmatika/logika sama dengan nol
7 S 0 : hasil operasi aritmatika/logika adalah positif
1 : hasil operasi aritmatika/logika adalah negatif

Contoh berikut terdapat operasi logika beserta penjelasan untuk masing-


masing bit pada register flag:
1. Jalankan Z80 Simulator IDE.
2. Klik pada menu Tools – Assembler atau tekan kombinasi tombol Ctrl+A
pada keyboard dan ketik program berikut:
LD B, 1FH
LD C, B
LD A, 01H
AND 0FH
INC B
HALT
.END

3. Pada jendela Assembler, klik menu Tools – Assemble untuk mengetahui


apakah ada kesalahan atau tidak. Simpan file ASM ke folder anda
masing-masing.
4. Muat program ke Simulator dengan mengklik menu Tools – Assemble &
Load.

BAB 4. Operasi Logika 80


Gambar 4.1 Hasil Assemble kode program
5. Jalankan simulator dengan mengklik menu Simulation – Start.
6. Lihat nilai-nilai register yang terlibat dalam program pada tampilan file
log.txt.

Gambar 4.2 Nilai-nilai register pada log.txt


7. Hasil nilai-nilai register yang terlibat dapat dilihat pada tabel berikut:
Mnemonik Simbol Operasi Keterangan
LD B, 1FH B ← 1FH isi register B = 1FH
LD C, B C←B isi register C = 1FH
LD A, 01H A ← 01H isi register A = 01H
AND 0FH A ← A AND 0FH isi register A di-AND-
kan dengan data 0FH

BAB 4. Operasi Logika 81


dan hasilnya disimpan
pada register A = 01H
INC B B←B+1 isi alamat B = 20H
HALT program berhenti
.END

8. Dari program di atas jika dilihat isi registernya masing-masing akan


terlihat seperti pada keterangan program. Selain itu dapat dilihat
pengaruhnya terhadap isi register flagnya setelah terjadi operasi logika
yaitu dengan melihat harga-harga yang ada pada masing-masing bit dari
register F (flag). Setelah terjadi operasi logika pada prgram di atas maka
register flag yang terpengaruh adalah sebagai berikut:
S Z - H - P/V N C
Operasi AND 0FH 0 0 - 1 - 0 0 0
Keterangan:
Setelah terjadi operasi logika AND, maka register F yang terpengaruh
adalah S, Z, dan V dengan penj elasan sebagai berikut:
 S = 0 artinya tidak terjadi perubahan tanda
 Z = 0 artinya hasilnya tidak sama dengan nol
 V = 0 artinya pada operasi tersebut tidak terjadi overflow

Contoh 4.1 Program logika AND antara dua buah data yang tersimpan pada
alamat memori:
Data pertama tersimpan pada alamat memori 1900H.
Data kedua tersimpan pada alamat memori 1902H.
Data hasil logika AND disimpan pada alamat memori 1904H.
1. Jalankan Z80 Simulator IDE.
2. Klik pada menu Tools – Assembler atau tekan kombinasi tombol Ctrl+A
pada keyboard dan ketik program berikut:
LD IX, 1900H
LD C, (IX+00H)
LD D, (IX+02H)
LD A, C
AND D
LD (IX+04H), A

BAB 4. Operasi Logika 82


HALT
.END

3. Pada jendela Assembler, klik menu Tools – Assemble untuk mengetahui


apakah ada kesalahan atau tidak. Simpan file ASM ke folder anda
masing-masing.
4. Muat program ke Simulator dengan mengklik menu Tools – Assemble &
Load.

Gambar 4.3 Hasil Assemble kode program


5. Pada jendela Z80 Simulator IDE, klik pada menu Tools – Memory
Editor atau tekan kombinasi tombol Ctrl+M pada keyboard. Masukkan
data-data sebagai berikut pada alamat yang ditentukan:
1900H = C5H
1902H = 71H

BAB 4. Operasi Logika 83


Gambar 4.4 Isi nilai pada Memory Editor
6. Jalankan simulator dengan mengklik menu Simulation – Start.
7. Pada jendela Memory Editor, pada alamat 1904H akan terisi data hasil
logika AND, yaitu 41H.

Gambar 4.5 Nilai-nilai pada Memory Editor


8. Lihat nilai-nilai register yang terlibat dalam program pada tampilan file
log.txt.

Gambar 4.6 Nilai-nilai register pada log.txt

BAB 4. Operasi Logika 84


9. Hasil nilai-nilai register yang terlibat dapat dilihat pada tabel berikut:
Mnemonik Simbol Operasi Keterangan
LD IX, 1900H IX ← 1900H isi register IX = 1900H
LD C, (IX+00H) C ← (IX+00H) isi register C = C5H
LD D, (IX+02H) D ← (IX+02H) isi register D = 71H
LD A, C A←C isi register A = C5H
AND D A ← A AND D isi register A di-AND-
kan dengan register D
dan hasilnya disimpan
pada register A = 41H
LD (IX+04H), A (IX+04H) ← A isi alamat 1904H = 41H
HALT
.END

Contoh 4.2 Program logika OR antara dua buah data yang tersimpan pada
alamat memori:
Data pertama tersimpan pada alamat memori 1900H.
Data kedua tersimpan pada alamat memori 1902H.
Data hasil logika OR disimpan pada alamat memori 1904H.
1. Jalankan Z80 Simulator IDE.
2. Klik pada menu Tools – Assembler atau tekan kombinasi tombol Ctrl+A
pada keyboard dan ketik program berikut:
LD IX, 1900H
LD C, (IX+00H)
LD D, (IX+02H)
LD A, C
OR D
LD (IX+04H), A
HALT
.END

3. Pada jendela Assembler, klik menu Tools – Assemble untuk mengetahui


apakah ada kesalahan atau tidak. Simpan file ASM ke folder anda
masing-masing.
4. Muat program ke Simulator dengan mengklik menu Tools – Assemble &
Load.

BAB 4. Operasi Logika 85


Gambar 4.7 Hasil Assemble kode program
5. Pada jendela Z80 Simulator IDE, klik pada menu Tools – Memory
Editor atau tekan kombinasi tombol Ctrl+M pada keyboard. Masukkan
data-data sebagai berikut pada alamat yang ditentukan:
1900H = C5H
1902H = 71H

Gambar 4.8 Isi nilai pada Memory Editor


6. Jalankan simulator dengan mengklik menu Simulation – Start.
7. Pada jendela Memory Editor, pada alamat 1904H akan terisi data hasil
logika OR, yaitu F5H.

BAB 4. Operasi Logika 86


Gambar 4.9 Nilai-nilai pada Memory Editor
8. Lihat nilai-nilai register yang terlibat dalam program pada tampilan file
log.txt.

Gambar 4.10 Nilai-nilai register pada log.txt


9. Hasil nilai-nilai register yang terlibat dapat dilihat pada tabel berikut:
Mnemonik Simbol Operasi Keterangan
LD IX, 1900H IX ← 1900H isi register IX = 1900H
LD C, (IX+00H) C ← (IX+00H) isi register C = C5H
LD D, (IX+02H) D ← (IX+02H) isi register D = 71H
LD A, C A←C isi register A = C5H
OR D A ← A OR D isi register A di-OR-
kan dengan register D
dan hasilnya disimpan
pada register A = F5H
LD (IX+04H), A (IX+04H) ← A isi alamat 1904H = F5H
HALT program berhenti

BAB 4. Operasi Logika 87


.END
Contoh 4.3 Program logika XOR antara dua buah data yang tersimpan pada
alamat memori:
Data pertama tersimpan pada alamat memori 1900H.
Data kedua tersimpan pada alamat memori 1902H.
Data hasil logika XOR disimpan pada alamat memori 1904H.
1. Jalankan Z80 Simulator IDE.
2. Klik pada menu Tools – Assembler atau tekan kombinasi tombol Ctrl+A
pada keyboard dan ketik program berikut:
LD IX, 1900H
LD C, (IX+00H)
LD D, (IX+02H)
LD A, C
XOR D
LD (IX+04H), A
HALT
.END

3. Pada jendela Assembler, klik menu Tools – Assemble untuk mengetahui


apakah ada kesalahan atau tidak. Simpan file ASM ke folder anda
masing-masing.
4. Muat program ke Simulator dengan mengklik menu Tools – Assemble &
Load.

BAB 4. Operasi Logika 88


Gambar 4.11 Hasil Assemble kode program
5. Pada jendela Z80 Simulator IDE, klik pada menu Tools – Memory
Editor atau tekan kombinasi tombol Ctrl+M pada keyboard. Masukkan
data-data sebagai berikut pada alamat yang ditentukan:
1900H = C5H
1902H = 71H

Gambar 4.12 Isi nilai pada Memory Editor


6. Jalankan simulator dengan mengklik menu Simulation – Start.
7. Pada jendela Memory Editor, pada alamat 1904H akan terisi data hasil
logika XOR, yaitu B4H.

Gambar 4.13 Nilai-nilai pada Memory Editor


8. Lihat nilai-nilai register yang terlibat dalam program pada tampilan file
log.txt.

BAB 4. Operasi Logika 89


Gambar 4.14 Nilai-nilai register pada log.txt
9. Hasil nilai-nilai register yang terlibat dapat dilihat pada tabel berikut:
Mnemonik Simbol Operasi Keterangan
LD IX, 1900H IX ← 1900H isi register IX = 1900H
LD C, (IX+00H) C ← (IX+00H) isi register C = C5H
LD D, (IX+02H) D ← (IX+02H) isi register D = 71H
LD A, C A←C isi register A = C5H
XOR D A ← A XOR D isi register A di-XOR-
kan dengan register D
dan hasilnya disimpan
pada register A = B4H
LD (IX+04H), A (IX+04H) ← A isi alamat 1904H = B4H
HALT program berhenti
.END

BAB 4. Operasi Logika 90

Anda mungkin juga menyukai