Instruksi Dasar Aritmatika dan OperasiLogika
6/04/2015
Pandai Elektronika-- Instuksi
aritmatika 8 bit dan operasi logika dalam CPU Z80 laksanakan pada register
A (accumulator).Register-register
A,B,C,D,E,H,dan L dapat digunakan sebagai operand bersama-sama dengan register
A padaa instruksi-instruksi LD.Jika data yang ditraanssfer antara memori dan
register A,alamat memori dapat ditujukan oleh register HL,IX,IY.Dibawah ini
terdapat nstruksi aritmaaatika daan instruksi operasi logika beserta artinya :
a). ADD
A : Data pada register A ditambahkaan
pada regisster A sendiri,artinya data diduakalikan atau digeser kekiri satu
bit.
b). ADC
B : Isi register B bersama dengan
carry flag ditambahkn register A.
c). SUB
C : Data pada register A dikuraangi
dengan data pada register C.
d). SBC(HL):Isi register A dikuraangi dengan isi
memori yang alamatnya ditunjukkan oleh HL,dikurangi lagi dengan carry flag.
e). AND
D : Operasi logika “AND” antara register D dan register A.
f). OR
0FH : Operasi logika “OR” antaara dataa 0FH dan
register A.
g). XOR
A : Operasi “OR-exusif” antaara register A dengan dirinya sendiri.
h). INC
H : Menambah isi register H dengan 1.
i). INC(IX) : Menambah
isi memori pada alamat yang ditunjuk oleh IX dengan 1.
j). DEC
C : Mengurangi isi register C dengan 1.
k). Dec
( IY + 3 ) : Hasil penjumlahan isi
register IY dan tiga dipakai sebagai penunjuk alamat pada memori. Isi memori
pada alamat yang ditunjuk IY + 3 dikurangi dengan 1.
Mode
pengalamatan lain dapat dilihat dari Z80 CPU technical manual :
1. Pengalamatan
Register
Sebagai
contohnya : Pada instruksi DC A,B ADC adalah opcode yang menyatakan operasi
macam apa yang akan dilaksanakan. Huruf A disebelah kanan menyatakan bahwa data
yang ditambah ke register A. Huruf B disebelah kanan huruf A yang menyatakan
bahwa data ditambah ke A diambil dari register B.
2. Pengalamatan
register tak langsung
Suatu
register 16 bit digunakan untuk menyimpan alamat memori. Contohnya : Pada
instruksi SBC A, ( HL ), bukan berarti bahwa register A dikurangi isi register
HL. Tetapi CPU akan melihat data 16 bit yang terdapat pada HL sebagai alamat
memori, lalu memeriksa data 8 bit yang tersimpan di memori pada alamat yang
ditunjuk IX dengan data 8 bit yang tersimpan pada memori yang alamatnya
ditunjukan dengan IX + 2. Hasilnya disimpan alam register A.
LD A,(IX)
ADD
A,(IX + 2)
3. Pengalamatan
langsung
Dalam
OR OFH, menjelaskan disebelah kanan opcode OR, terdapat bilangan OFH. Hal ini
berarti bahwa bilangan OFH di OR kan secara logikandengan register A. Baik data
OFH maupun juga programnya disimpan di memori. CPU mengambil data dengan
melihat PC sebagai alamat tujuan. Contoh-contoh dibawah ini juga merupakan
pengalamatan tidak langsung.
LD B,8
ADD A,44H
SUB
A,OA4H
Setelah suatu operasi
logika atau aritmatika selesai dilaksanakan, hasilnya akan disimpan pada register
A dan beberapa status flag akan terpengaruh. Beberapa contoh dari status flag :
a). Carry
Flag
Carry
flag ini akan berada dalam keadaan set (1) bila dalam operasi penjumlahan yang
tidak diberi tanda ( + atau - ) hasil yang didapat lebih besar dari operasi
pengurangan, terjadi dalam keadaan set apabila dalam operasi pengurangan
terjadi peminjaman.
b). Over
flow atau Parity flag
Pada
operasi aritmatika komplemen kedua yang menggunakan data (+ atau -)maka flag
ini sebagaiover flow fag. Over flow flog dalam Z 80 menyatakan bahwa bilangan
komplemen kedua bertanda pada accumulator telah melebihi kapasitas maksimum
(+127) atau kurang dari kapasitas minimum(-128).
c). Zero
flag
Jika
register A sama dengan nol setelah operasi logika atau aitmatika, keadaan atau
status ini akan dicatat didalam fli-flop yang disebut zero flag. Zero flag
dapat digunakan sebagai sarat untuk instruksi-instruksi bercabang, juga sangat
berguna dalam program “LOOP”.
d). Sign
flag
Jika
bit yang paling kiri (bit 7) dari register A adalah salah satu setelah operasi
logika atau aritmatika, bilangan pada register A diinterprestasikan sebagai
bilangan negative. Sign flag ini akan diset menjadi satu. Flag ini akan di
abaikan bila programmer telah menunjuk datanya sebagai bilangan-bilangan tanpa
ada.
e). Flag-flg
lain
Flag-flag
lain yang dirancang untuk operasi aritmatika BCD tidaklah penting bagi
programmer.