percobaan 3

download percobaan 3

of 11

description

mikroprosesor

Transcript of percobaan 3

MODUL 5INSTRUKSI ARITMETIKA DAN LOGIKA

Lembar InformasiInstruksi - instruksi aritmatika yang disediakan pada mikroprosesor Zilog Z-80 CPU jumlahnya terbatas, yaitu hanya instruksi penjumlahan (ADD dan ADC) dan pengurangan (SUB dan SBC). Meskipun demikian bukan berarti persoalan aritmatika lainnya seperti perkalian dan pembagian tidak dapat diselesaikan. Dengan menggabungkan beberapa instruksi yang tersedia dapat dibuat program subroutin untuk perkalian, pembagian, mencari nilai kuadrat dari 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 dalam melakukan operasinya. Oleh karena itu perlu disediakan Instruksi Decimal Addjust Accumulator (DAA) yang berguna untuk memberikan factor koreksi pada saat kita bekerja dalam sistem bilangan desimal ke kode BCD.Instruksi CPs disediakan untuk membandingkan isi akumulator dengan sebuah data tanpa merubah isi akumulator. Instruksi ini memberikan akibat pada perubahan register flag sebagai status pembandingnya dimana pada saat melaksanakan instruksi pembandingan mikroprosesor menggunakkan sistem bilangan komplemen dua. Status tersebut diantaranya adalah (S = Sign, Z = Zerro, H = Half Carry, dan C = Carry).Pada sistem komplemen dua bilangan terkecil adalah 8FH = 1000 0000B = -128 dan bilangan terbesar adalah 7F = 0111 1111 = +127.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 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. 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 5.1 di bawah ini :Tabel 5.1. Instruksi ADD

Instruksi SUB hanya digunakan 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 itu isi register A dapat dikurangi dengan data pada suatu lokasi memori yang alamatnya dicatat oleh register HL, IX, dan IY. Untuk lebih jelasnya perhatikan Tabel 5.2.Instruksi ADD dan SUB dapat mempengaruhi status Sign, Zerro, Half Carry, 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.Tabel 5.2 Instruksi SUB

Instruksi ADC (ADD With Carry) dan SBC (Sub With Carry)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). Lihat tabel 5.3.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 mengikut sertakan 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 mengikut sertakan bit Carry Flag (Cy). Hasil dari kedua bentuk pengurangan tersebut dicatat di Register A dan Register HL. Lihat tabel 5.4.

Instruksi INC (Increment) dan DEC (Decrement)Instruksi INC digunakan untuk menambah isi suatu register atau memori dengan satu nilai. Instruksi ini sangat potensial digunakan untuk membuat counter cacah naik. Lihat tabel 5.5.Instruksi DEC digunakan untuk mengurangi isi register atau data suatu memori dengan nilai 1. Lihat tabel 5.6.

Tabel 5.3 Instruksi ADC

Tabel 5.4 Instruksi SBC

Tabel 5.5 Instruksi INC

Tabel 5.6 Instruksi DEC

Instruksi Aritmetika KhususDalam operasi aritmetika disediakan beberapa instruksi khusus, yaitu :1. DAA mnemonic dari Decimal Adjust Accumulator.Instruksi DAA digunakan untuk merubah isi register A ke bentuk BCD, selain itu instruksi DAA juga digunakan untuk memberi faktor koreksi pada saat bekerja dengan bilangan desimal. Dalam melakukan koreksi DAA 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.2. CPL mnemonic dari Complement Accumulator ( Komplemen 1)Instruksi CPL digunakan untuk merubah isi akumulator menjadi bentuk komplemen 1 yaitu dengan menginverse semua bit yang ada di akumulator.3. NEG mnemonic dari Negative Accumulator (Komplemen 2)Instruksi NEG digunakan untuk merubah isi akumulator menjadi bentuk negatifnya yaitu dengan merubahnya menjadi nilai komplemen dua.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 atau lebih kecil dari suatu nilai tertentu. Lihat tabel 5.7.Instruksi LOGIKA AND, OR, dan XORInstruksi 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. Lihat tabel 5.8.Tabel 5.7 Instruksi CP

Tabel 5.8 Instruksi Logika

Pola di atas berlaku juga pada operasi LOGIKA OR dan XOR. Simbol operasi Logika adalah sbb : : untuk LOGIKA AND

+ : untuk LOGIKA OR : untuk LOGIKA XOR17

16

Lembar KerjaAlat dan Bahan1 Trainer MPF-1 ............................................................. 1 buah2 Catu Daya DC ............................................................ 1 buahKesehatan dan Keselamatan Kerja1 Janganlah menghubungkan Trainer MPF-1 dengan sumber AC.2 Ikuti semua petunjuk yang ada dalam modul kerja.3 Gunakanlah sumber DC 9 VDCLangkah KerjaProgram Penjumlahan1 Persiapkan alat dan bahan yang diperlukan!2 Hubungkan MPF-1 dengan sumber DC 9 V!3 Ketikkan ke dalam MPF-1 program sebagai berikut!No.AddressKode Operasi(Bahasa Mesin)Mnemonic(Bahasa Assembly)

1.2.3.4.5.6.7.8.9.10.11.180018041807180A180D18101813181618181819181CDD 21 00 19DD 7E 00DD 86 02DD 77 04DD 7E 01DD 8E 03DD 77 053E 008FDD 77 06FFLD IX, 1900hLD A, (IX + 00)ADD A, (IX + 02)LD (IX + 04), ALD A, (IX + 01)ADC A, (IX + 03)LD (IX + 05), ALD A, 00ADC A, ALD (IX + 05), ARST 38

4 Eksekusi program tersebut di atas dan periksa isi data register dan memori dengan mencatatkannya pada tabel berikut !Data 1Data 2Data 1+ Data 2

[1900][1901][1902][1903][1904][1905][1906]

10000302

06050807

8F9FF5AF

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!No.AddressKode Operasi(Bahasa Mesin)Mnemonic(Bahasa Assembly)Keterangan

1.2.3.4.5.6.7.8.9.10.11.12.13.180018041807180A180B180E1811181418151818181A181B181EDD 21 00 19DD 7E 00DD 86 0227DD 77 04DD 7E 01DD 8E 0327DD 77 053E 008FDD 77 06FFLD IX, 1900hLD A, (IX + 00)ADD A, (IX + 02)DAALD (IX + 04), ALD A, (IX + 01)ADC A, (IX + 03)DAALD (IX + 05), ALD A, 00ADC A, ALD (IX + 05), ARST 38

Koreksi

Koreksi

STOP

6 Eksekusi program tersebut di atas dan periksa isi data register dan memori dengan mencatatkannya pada tabel berikut !Data 1Data 2Data 1+ Data 2

[1900][1901][1902][1903][1904][1905][1906]

10203040

15255070

40152555

7 Kembalikan semua alat dan bahan kemudian buatlah laporan lengkap dengan kesimpulan!