Instruksi Dasar Aritmatika dan OperasiLogika


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.



Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel