INSTRUKSI ARITMETIKA DAN LOGIKA PADA MIKROPROSESOR Z-80
Pada pertemuan yang keduapuluh untuk sesi sistem mikroprosesor kali ini, kita mencoba membahas mengenai instruksi aritmetika dan logika pada mikroprosesor Z-80, mudah-mudahan sobat blogger dapat memahaminya. Agar dapat memahaminya, sobat blogger harus membaca dan menyimak tulisan ini dengan penuh konsentrasi (boleh juga sih sambil dengarkan lagu heheheee...), kemudian dilanjutkan dengan melaksanakan praktikum sesuai dengan langkah-langkah dalam lembar kerja (jobsheet) yang telah disajikan.
Dalam mikroprosesor
Zilog Z-80 CPU instruksi-instruksi aritmatika yang disediakan jumlahnya
terbatas, pada instruksi penjumlahan (ADD dan ADC) dan pada pengurangan
(SUB dan SBC) saja. Dengan demikian bukan berarti bahwa persoalan
aritmetika lainnya seperti perkalian dan pembagian tidak dapat diselesaikan.
Dengan menggabungkan beberapa instruksi yang tersedia dapat dibuat program
subroutin untuk perkalian dan pembagian, mencari nilai kuadrat suatu bilangan,
sortir data, pengurutan, dan sebagainya. Perlu diingat bahwa mikroprosesor
melalukan operasi penjumlahan dan pengurangan dalam sistem komplemen berbasis
dua sedangkan kita menggunakan sistem bilangan desimal hampir di segala bidang.
Instruksi Decimal Addjust Accumulator (DAA) disediakan untuk memberikan faktor
koreksi pada saat kita bekerja dalam sistem bilangan desimal dalam kode BCD.
Instruksi CP,s
disediakan untuk membandingkan isi akumulator dengan sebuah data tanpa merubah
isi akumulator tersebut. Instruksi ini memberikan akibat pada perubahan register flag
sebagai status pembandingannya. Status tersebut diantaranya adalah (S=Sign,
Z=Zerro , H=Half Carry, dan C=Carry). Dalam melaksanakan instruksi
pembandingan, mikroprosesor menggunakkan sistem bilangan komplemen dua.
Pada sistem komplemen
dua bilaangan terkecil adalah 8FH = 10000000B = -128 dan bilangan terbesar
adalah 7F = 0111 1111 = +127.
1. Instruksi
ADD dan SUB.
Instruksi ADD
digunakan untuk melakukan operasi penjumlahan 8 bit dan 16 bit. Ada 38 jenis
perintah penjumlahan pada mikroprosesor Z-80 CPU.
Pada operasi aritmetika 8 bit
register A (akumulator) ditambahkan dengan isi sebuah register 8 bit atau data
immediate 8 bit, atau data pada satu lokasi memori yang alamatnya dicatat oleh
register HL, IX, atau IY. Sedangkan pada operasi aritmetika 16 bit register HL, IX, dan
IY berfungsi sebagai akumulator yang dapat ditambahkan dengan isi register BC,
DE, HL, SP. Untuk lebih jelasnya perhatikan Tabel 1 berikut ini:
Tabel 1. Instruksi ADD
Instruksi SUB
digunakan hanya untuk melakukan operasi pengurangan 8 bit. Pada operasi SUB isi
register A dikurangkan dengan salah satu isi register A, B, C, D, E, H, L, atau
data immediate 8 bit. Disamping juga isi register A dapat dikurangi dengan data
pada suatu lokasi memori yang alamatnya dicatat oleh register HL, IX, dan IY.
Tabel 2. Instruksi SUB
Instruksi ADD dan SUB
dapat mempengaruhi status Sign, Zerro, HalfCarry, Overflow, dan Carry pada
Register Flag. Pada instruksi ADD flag N = 0 dan pada instruksi SUB flag N = 1.
Dua keadaan ini digunakan untuk menyatakan fungsi flag C sebagai carry atau
borrow.
Instruksi ADC
digunakan untuk menambahkan isi register A dengan data 8 bit yang berada pada suatu
register atau data immediate atau data suatu memori dan mengikut sertakan bit
Carry (C). Instruksi ADC juga digunakan untuk menambahkan isi register HL
dengan data 16 bit yang berada pada register BC, DE, HL, dan SP dengan mengikut
sertakan bit Carry Flag (C).
Tabel 3. Instruksi ADC
Instruksi SBC
digunakan untuk mengurangkan isi register A dengan data 8 bit yang berada pada suatu
register atau data immediate atau data suatu memori dengan mengikutsertakan bit
carry flag. Instruksi SBC juga digunakan untuk mengurangkan isi register HL
dengan data 16 bit yang berada pada register BC, DE, HL, dan SP dengan
mengikutsertakan bit Carry Flag (Cy). Hasil dari kedua bentuk pengurangan
tersebut dicatat di Register A dan Register HL.
Tabel 4. Instruksi SBC
Instruksi INC
digunakan untuk menambah isi suatu register atau memori dengan satu nilai.
Instruksi ini sangat potensial digunakan untuk membuat counter cacah naik.
Tabel 5. Instruksi INC
Instruksi DEC
digunakan untuk mengurangi isi register atau data suatu memori dengan nilai 1.
Tabel 6. Instruksi DEC
4. Instruksi
Aritmetika Khusus
Dalam operasi
aritmetika disediakan beberapa instruksi khusus yaitu :
- DAA
mnemonic dari Decimal Adjust Accumulator
- CPL
mnemonic dari Complement Accumulator ( Komplemen 1)
- NEG
mnemonic dari Negate Accumulator (Komplemen 2).
a. Instruksi DAA
Instruksi DAA digunakan untuk
merubah isi register A ke bent uk BCD. Instruksi DAA digunakan untuk memberi
faktor koreksi pada saat bekerja dengan
bilangan desimal. DAA dalam melakukan koreksi bekerja sbb :
- Jika Bit b3, b2, b1, b0 > 9
atau ada Half Carry (H = 1) maka bit b3, b2, b1, b0 ditanbah dengan 0110 = 6.
- Jika Bit b7, b6, b5, b4 > 9
atau ada Carry (C = 1) maka bit b7, b6, b5, b4 ditanbah dengan 0110 = 6.
b. Instruksi CPL ( Complement)
Instruksi CPL digunakan untuk
merubah isi akumulator menjadi bentuk komplemen 1 yaitu dengan menginverse
semua bit yang ada di akumulator.
c. Instruksi NEG (Negate)
Instruksi BEG
digunakan untuk merubah isi akumulator menjadi bentuk negatifnya yaitu dengan
merubahnya menjadi nilai komplemen dua.
5. Instruksi CP (Compare)
Digunakan untuk
membandingkan isi akumulator dengan data immediate 8 bit atau isi salah satu
register 8 bit atau isi/data suatu lokasi memori tanpa merubah isi akumulator.
Instruksi CP membangun keadaan
pada status Flag pada Bit Sign, Zero, Over
Flow, Half Carry dan Carry pada Register Flag. Instruksi CP sangat baik
digunakan untuk menguji sebuah data apakah data tersebut sama dengan suatu
nilai tertentu atau lebih besar dan lebih kecil dari suatu nilai tertentu.
Tabel 7. Instruksi CP
Instruksi AND, OR,
dan XOR digunakan untuk melakukan operasi logika isi dari akumulator terhadap
data suatu register 8 bit atau data immediate, atau data suatu lokasi memori.
Tabel 8. Instruksi Logika
Pola di atas berlaku
juga pada operasi LOGIKA OR dan XOR. Simbol operasi Logika adalah sbb:
^
: untuk LOGIKA ANDV : untuk LOGIKA OR
(+) : untuk LOGIKA XOR
Lembar Kerja
Alat dan Bahan :
1. Trainer MPF-1...................................................................... 1 buah
2. Catu Daya DC..................................................................... 1 buah
Kesehatan dan Keselamatan Kerja :
1. Janganlah menghubungkan Trainer MPF-1 dengan sumber AC!
2. Ikuti semua petunjuk yang ada dalam modul kerja!
3. Gunakanlah sumber DC 9 VDC!
Langkah Kerja :
Program Penjumlahan
1. Persiapkan alat dan bahan yang diperlukan!
2. Hubungkan MPF-1 dengan sumber DC 9 V!
3. Ketikkan ke dalam MPF-1 program sebagai berikut!
4. Eksekusi
program tersebut di atas dan periksa isi data register dan memori dengan
mencatatkannya pada tabel berikut :
Data 1
|
Data 2
|
Data 1+ Data 2
|
||||
[1900]
|
[1901]
|
[1902]
|
[1903]
|
[1904]
|
[1905]
|
[1906]
|
10
|
00
|
03
|
02
|
|||
06
|
05
|
08
|
07
|
|||
8F
|
9F
|
F5
|
AF
|
5. Program tersebut diatas adalah penjumlahan
biner. Untuk membuat program tersebut bekerja sebagi program penjumlahan
bilangan desimal, tambakan satu perintah koreksi DAA seperti tabel di bawah
ini.
6. Eksekusi
program tersebut di atas dan periksa isi data register dan memori dengan mencatatkannya
pada tabel berikut :
Data 1
|
Data 2
|
Data 1+ Data 2
|
||||
[1900]
|
[1901]
|
[1902]
|
[1903]
|
[1904]
|
[1905]
|
[1906]
|
10
|
20
|
30
|
40
|
|||
15
|
25
|
50
|
70
|
|||
40
|
15
|
25
|
55
|
thanks gan sudah share
BalasHapussolder uap
terimakasih banyak
BalasHapus