Modul Prakt Sistem Mikroprosesor

(1)

MODUL PRAKTIKUM

SISTEM MIKROPROSESOR

SEMESTER : IV (EMPAT) JUMLAH SKS : 1 ( 2 x 50” )

DISUSUN OLEH : SISWAYA, A.Md.,S.Pd

PROGRAM STUDI TEKNIK KOMPUTER

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RHMA YOGYAKARTA


(2)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 1 Praktikum Mikroprosesosr.

Kelompok Fungsi dari Tombol dan Register MPF Z-80

Semester 3 1 SKS (2 x 60”) I. Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menyebutkan fungsi pelayanan tombol MPF-1 Z-80.

2. Menyebutkan fungsi tombol Hexa dan register MPF-1 Z-80. II. Alat dan Bahan praktikum :

1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (job sheet 1).

III.Mengenal Kelompok Fungsi

A. Kelompok Fungsi dari tombol MPF Z-80. Label : Fungsi Pelayanan

RS : Reset pada Z-80 CPU sehingga sistem disiapkan dari awal lagi. ADDR : Melaksanakan kesiapan pembacaan address dan isi memorinya. REG : Melaksanakan kesiapan pembacaan isi register.

DATA : Melaksanakan kesiapan mengubah isi memori / menyimpan data.

PC : Melaksanakan kesiapan pembacaan program counter.

+ : Maju satu lokasi ke memori berikutnya (address memori +1).  : Mundur satu lokasi ke memori berikutnya (address memori 1). STEP : Menjalankan / mengeksekusi untuk untuk tiap satu instruksi jika

ditekan satu kali.

SBR : Memberi tempat berhenti suatu program / mengeksekusi blok. CBR : Menghapus tempat berhenti karena perintah “SBR” pada suatu

program.

MONI : Menghentikan program yang baru sedang dijalankan / dieksekusi dan berhenti pada address dimana program itu diberhentikan.

GO : Mengeksekusi seluruh instruksi dari suatu program.

INS : Menyisipkan satu byte lokasi pada memori, letak lokasi memori sisipan itu lebih tinggi satu address terhadap address yang tampak pada display.

MOVE : Mengutip data satu blok memori ke satu blok memori lainnya / transfer blok.

RELA : Melaksanakan kesiapan menghitung loncatan relatif dari satu memori ke memori lainnya.

TAPE WR : Melaksanakan kesiapan merekam program ke pita cassette. TAPE RD : Melaksanakan kesiapan membaca program dari pita cassette. INTR : Tombol Maskable Interrupt ke Z-80 CPU (tidak digunakan).

Boleh memberikan interrupt sesudah program selesai / tidak boleh pada saat program sedang berjalan.


(3)

B. Kelompok tombol Hexa dan Nama Register Label

(Register / Hexadecimal) Kegunaan

AF

0 Tombol angka 0H atau register A dan register F. BC

1 Tombol angka 1H atau register B dan register C. DE

2 Tombol angka 2H atau register D dan register E. HL

3 Tombol angka 3H atau register H dan register L. AF’

4 Tombol angka 4H atau register A’ dan register F’. HL’

5 Tombol angka 5H atau register H’ dan register L’. BC’

6 Tombol angka 6H atau register B’ dan register C’. DE’

7 Tombol angka 7H atau register D’ dan register E’. IX

8 Tombol angka 8H atau register IX. IY

9 Tombol angka 9H atau register IY. SP

A Tombol angka AH atau register SP. I*IF

B Tombol angka BH atau interrupt register flag. SZ*H

C Tombol angka CH

PNC

D Tombol angka DH

SZ*H

E Tombol angka EH

PNC

F Tombol angka FH

C. Pengenalan Register-register pada MPF Z-80.

Register dapat dibayangkan sebagai suatu wadah / lokasi tempat menyimpan data. Register mempunyai sifat yang sama dengan RAM. Dalam sistem mikroprose-sor ada berbagai jenis register, yaitu :

- Register 8 bit

Ini berarti kemampuan untuk menyimpan data 8 bit atau 1 byte. - Register 16 bit


(4)

Data yang tersimpan dalam register setiap saat dapat diubah dan dibaca. Berdasarkan penggunaannya maka register-register 8 bit tersebut secara umum dipisahkan menjadi dua kelompok, yaitu :

- Kelompok register utama (main register set)

- Kelompok register alternatif (alternatif register set), cirinya terdapat tanda aksen (‘). Kelompok register utama bersifat identik dengan kelompok register alternatif, akan tetapi setiap saat yang boleh digunakan hanya salah satu kelompok saja dengan kata lain bahwa kelompok register itu tidak boleh digunakan bersama-sama. Kelompok register utama (main register set), terdiri dari :

- Accumullator 8 bit disebut juga register A. - Register flag 8 bit disebut juga register F.

- Register untuk penggunaan umum atau general purpose register, yang terdiri dari : ~ Register B (8 bit) dan register C (8 bit) yang dapat berpasangan menjadi register

BC (16 bit).

~ Register D (8 bit) dan register E (8 bit) yang dapat berpasangan menjadi register DE (16 bit).

~ Register H (8 bit) dan register L (8 bit) yang dapat berpasangan menjadi register HL (16 bit).

Register B, C, D, E, H dan L dapat digunakan secara umum, masing-masing berupa register 8 bit yang bebas dioperasikan sendiri-sendiri. Isi register itu dapat dioperasikan aritmatik atau logika terhadap register A. Di samping itu register-register tersebut dapat dioperasikan berpasangan seperti di atas dan tidak boleh membentuk pasangan lain. Selain register tersebut di atas ada beberapa register 8 bit untuk penggunaan khusus, yaitu :

- Register I (Interrupt), register khusus untuk melayani keperluan operasi interupsi. - Register R (memory refresh), register khusus untuk melayani keperluan operasi

dynamic memory refresh.

Selain register 8 bit ada 4 buah register yang berbentuk register 16 bit, yaitu : - Register IX atau Index register IX.

- Register IY atau Index register IY. - Register SP atau Stack pointer. - Register PC atau Program counter. D. Penjelasan Register secara Terperinci

1. Register A (Akumulator) Sifat register A (Akumulator)

- Sekedar untuk menyimpan data 2 byte.

- Data register A dapat dikenakan operasi aritmatik. - Data register A dapat dikenakan operasi logika.

- Lintas data antar komponen penunjang harus disinggahkan terlebih dahulu di register A, baru kemudian dikirim.


(5)

Register F merupakan register pembantu terhadap operasi aritmatika atau operasi logika. Pada register ini disimpan tanda keadaan jika terjadi carry, non-carry, borrow, zero, parity / overflow, halfcarry dan sign.

Register F (Flag) dapat dilukiskan sebagai berikut :

Bit7 Bit 6 Bit 5 Bit4 Bit3 Bit2 Bit1 S Z - H - P/O N

(sign) (zero) (blank) (halfcarry) (parity/overflow) carry) 3. Register Umum

Sifat dari register umum adalah sebagai berikut : - Sekedar untuk menyimpan data 1 byte.

- Isinya dapat dikutipkan dari register yang satu ke register yang lainnya.

- Isinya dapat dioperasikan aritmatik atau logika terhadap isi register A (terha-dap isi Akumulator)

- Dapat dioperasikan dalam register berpasangan yang mempunyai kemampuan 16 bit.

- Menyimpan data 16 bit. - Sebagai pencatat address.

- Register HL dapat berfungsi sebagai akumulator untuk operasi aritmatik 16 bit.

4. Register Penunjuk Stack (Stack Pointer)

Stack adalah memori tempat simpan isi register 16 bit yang hanya berkaitan dengan operasi penyimpanan PUSH dan operasi pengambilan POP. Register SP adalah pencacat address stack dan memiliki sifat menunjuk ke

address memori, akan tetapi berbeda dengan sifat register penunjuk address

lainnya.


(6)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 2 Praktikum Mikroprosesosr.

Deskripsi Fungsi Tombol-tombol pada MPF-1

Semester 3 1 SKS 2 x 60”) I. Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menyebutkan notasi pada setiap tombol MPF-1 Z-80.

2. Menyebutkan fungsi masing-masing tombol beserta contoh pemakaiannya. II. Alat dan Bahan praktikum :

1. Piranti MPF-1 Z-80.

3. Lembar Tugas / Kerja (job sheet 2).

III.Mengenal Fungsi Tombol.

Berikut uraian mengenai notasi pada tombol dan fungsi masing-masing key-pad

MPF-1 beserta contoh pemakaiannya. 1. Tombol ‘RS’ (Reset)

Tombol reset digunakan untuk me-reset keseluruhan sistem. Dengan menekan tombol ‘RS (Reset)’ maka pada display akan muncul UPF-1.

2. Tombol ‘PC’ (Program Counter)

Tombol ‘PC’ digunakan untuk kembali ke address awal yang digunakan oleh pemrogram atau kembali ke address awal memori pada program yang belum dieksekusi (RUN).

1800 XX

Keterangan : 1800H adalah address yang disediakan MPF-1 untuk memulai membuat program.

3. Tombol 0 sampai dengan F

Tombol ini merupakan tombol simbol bilangan hexadecimal yang berguna untuk memasukan kode dari data, instruksi, maupun address yang berupa bilangan

hexadecimal. 4. Tombol ‘+’

Tombol ‘+’ digunakan untuk maju ke address berikutnya (penunjukkan address

memori bertambah satu). Contoh :

Keadaan awal Keadaan setelah menekan ‘+’ 1800 XX 1801 XX

5. Tombol ‘’

Tombol ‘’ digunakan untuk mengurangi satu dari penunjukan address memori. Dengan menekan tombol ‘’ maka penunjukkan address memori pada display akan berkurang satu.

Contoh :

Keadaan awal Keadaan setelah menekan ‘’ 1802 XX 1801 XX

6. Tombol ‘INS’ (Insert)

Tombol ‘INS’ digunakan untuk menyisipkan 1 byte data / instruksi pada address


(7)

display akan bertambah satu dan pada display data adalah 00H. Jadi perintah ‘INS’ menyisipkan address setelah address yang tampak di display.

Contoh :

Keadaan awal Keadaan setelah menekan ‘INS’ 1800 XX 1801 XX

Keterangan : Data yang berada di atas address pada saat ditekan ‘INS’ maka

address-nya akan bertambah satu. 7. Tombol ‘DEL’ (Delete)

Tombol ‘DEL’ digunakan untuk menghapus 1 byte data atau 1 byte instruksi pada

address tertentu. Dengan menekan tombol ‘DEL’ data yang ada pada address yang tampak di display akan terhapus, lalu diganti dengan data atau instruksi yang berada di address sesudahnya.

8. Tombol ‘ADDR’ (Address)

Tombol ‘ADDR’ digunakan untuk menuju ke address tertentu. Dengan menekan ‘ADDR’ kita dapat menuju ke address tertentu yang diinginkan.

Contoh : Tekan tombol : ADDR,1,9,0,0 berturut-turut maka pada display akan tampak 1900 XX

9. Tombol ‘REG’

Tombol ‘REG’ digunakan untuk menuju / melihat isi dari register yang diinginkan. Dengan menekan tombol ‘REG’ kita dapat melihat isi dari isi register yang diinginkan.

Contoh :

Tekan tombol : REG, AF berturut-turut maka pada dislpay akan tampak: XX YY AF

--- ---- ---- Register YY : Isi register F XX : Isi register A

10. Tombol ‘DATA’

Tombol ‘DATA’ digunakan untuk mengeset data, instruksi pada address tertentu atau isi dari suatu register tertentu.

Contoh :

- Tekan tombol : REG, AF, DATA, 00, +, 00

berturut-turut maka pada display akan tampak : 0000 AF - Tekan tombol : ADDR, 1, 9, 0, 0, DATA, A, B

berturut-turut maka pada display akan tampak : 1900 AB 11. Tombol ‘MOVE’

Tombol ‘MOVE’ digunakan untuk menyalin beberapa data atau instruksi pada address tertentu ke address yang diinginkan (copy block).

Contoh :

- Tekan tombol ‘MOVE’ maka pada display akan tampak : XXXX S S: Start (awal address)

- Tekan tombol : 1, 8, 0, 0 akan tampak : 1800 S

- Tekan tombol : 1, 8, 0, 5 akan tampak : 1805 E E : End (akhir address) - Tekan tombol : ‘+‘ akan tempak :


(8)

XXXX D D : Destination (address tujuan) - Tekan tombol : 1, 8, 0, 6 akan tampak :

1806 D

- Tekan tombol : ‘GO’

Bandingkan data yang berada pada address : 1800 dengan 1806

1801 dengan 1807 1802 dengan 1808 1803 dengan 1809 1804 dengan 180A 1805 dengan 180B

Dari hasil perbandingan itu akan didapat data yang sama pada masing-masing

address yang dibandingkan. 12. Tombol ‘RELA’ (Relatif)

Tombol ‘RELA’ digunakan untuk melakukan instruksi lompatan relatif dari suatu

address ke address tertentu. Lompatan tersebut dapat ke address yang lebih tinggi atau ke address yang lebih rendah. Dengan memakai perintah ini banyaknya lompatan tidak perlu kita hitung lagi.

Contoh :

- Tekan tombol : RELA XXXX S

- Tekan tombol : 1, 8, 0, 0 akan tampak : 1800 S

- Tekan tombol : ‘+’ XXXX D

- Tekan tombol : 1, 8, 1, 0 akan tampak : 1810 D

- Tekan tombol : ‘GO’ 13. Tombol : ‘GO’

Tombol : ‘GO’ berguna untuk mengeksekusi program / me-RUN program pada MPF-1.

14. Tombol ‘MONI’ (Monitor)

Tombol ‘MONI’ berguna untuk menghentikan program yang masih berjalan dan display kembali ke address memori di mana program tersebut berhenti.

15. Tombol ‘STEP’

Tombol ‘STEP’ berguna untuk menjalankan satu instruksi pada program tersebut. 16. Tombol ‘SBR’ (Set Break Run)

Tombol ‘SBR’ berguna untuk memberi set point pada program. Dengan menekan tombol ‘SBR’ pada address tertentu pada program, maka pada saat program dijalankan akan berhenti pada address yang diberi tanda set point.

17. Tombol ‘CBR’ (Clear Break Run)

Tombol ‘CBR’ berguna untuk menghapus set break point yang diberikan sewaktu menekan tombol ‘SBR’ pada address tertentu.

18. Tombol ‘TAPE WR’ (Tape Write)

Tombol ‘TAPE WR’ berguna untuk menulis program ke pita kaset dengan cara jack MIC pada MPF-1 board dihubungkan dengan jack MIC pada Tape Recorder.


(9)

Contoh :

- Tekan ‘TAPE WR’ , akan tampak di display :

XXXX F F : File (nama file dalam bilangan hexadecimal) - Tekan : 1, 1, 1, 1

1111 F - Tekan ‘+’

XXXX S S : Start address yang akan disimpan pada pita kaset. - Tekan : 1, 8, 0, 0

1800 E E : akhir address yang akan disimpan pada pita kaset. - Tekan : misal 1, 8, 5, 0

1850 E

Hidupkan Tape Recorder pada posisi rekam, kemudian tekan ‘GO’. 19. Tombol ‘TAPE RD’ (Tape Read)

Tombol ‘TAPE RD’ digunakan untuk membaca program yang disimpan dalam di pita kaset ke dalam MPF-1 dengan cara menghubungkan jack EAR pada MPF-1 dengan jack EAR pada Tape Recorder. Jika volume dari Tape Recorder cukup keras maka pada saat terjadi pembacaan program oleh MPF-1 akan terdengar bunyi sesuai dengan kode bilangan heksadesimal yang dibaca.

Contoh :

- Tekan ‘TAPE RD’

XXXX F F: nama file - Tekan : misal 1, 1, 1, 1

1111 F

- Tekan : ‘GO’, kemudian hidupkan Tape Recorder pada posisi ‘play’ 20. Tombol ‘INTR’ dan ‘USERKEY’ tidak didefinisikan.


(10)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 3 Praktikum Mikroprosesosr.

Modus Pengalamatan dan Isi Memori Data

Semester 3 1 SKS 2 x 60”) I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Mengoperasikan program dengan modus pengalamatan tersirat, pengalamatan dekat, pengalamatan tidak langsung, dan pengalamatan berindeks.

2. Melihat atau mengecek isi memori pada lintas data untuk setiap program. II. Alat dan Bahan praktikum :

1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 3). 3. Unit Address Decoder.

III. Teori Dasar

Dalam pembuatan suatu program pada mikroprosesor ini hal-hal yang sangat penting untuk diperhatikan, yaitu :

- Pemeriksaan isi memori agar program dapat dijalankan sesuai dengan diagram alir yang dibuat oleh programer.

- Cara addressing seperti :

A. Modus Pengalamatan Tersirat

Address data tidak perlu disebutkan, karena sudah tersirat pada instruksi tersebut. Contoh pada Mnemonic : NEG : ubah isi register A agar menjadi negatif.

B. Modus Pengalamatan Dekat

Di sini data disebutkan dalam instruksi, contoh :

LD A, 05H : Isikan bilangan 05H ke register A.

LD BC, 1200H : Isikan bilangan 1200H ke pasangan register BC (dimana 1200H adalah sebagai data).

C. Modus Pengalamatan Tidak Langsung

Di sini data terletak pada alamat yang tersimpan pada suatu pasangan register. Contoh :

LD HL, 1200H : Isikan address 1200H ke register HL.

LD B, (HL) : Salin data yang ditunjuk oleh address pada register HL ke dalam register B.

Keterangan :

- Instruksi pertama meminta register HL diisi dengan address 1200H. Instruksi kedua menyatakan isi memori yang ditunjukkan oleh address yang ada pada register HL agar disalin ke register B.

D. Modus Pengalamatan Berindeks

Pada mikroprosesor Z-80 ada dua register berindeks yaitu register IX dan IY, masing-masing besarnya 16 bit. Keduanya berguna untu menunjukan suatu data yang berada pada address tertentu, contoh :

LD IX, 1810H : Isikan address memori 1810H ke register IX.

LD (IX+5),02H : Isikan bilangan 02H ke lokasi memori IX + 5H, berarti lokasi memori IX + 5H = 1810H + 5H = 1815H diisi dengan bilangan 02H.


(11)

IV. Langkah Kerja

Modus Pengalamatan

Ketikkan program berikut ke MPF-1: Program I :

Address Op-Code Mnemonic Keterangan

1800 3E LD A, 05H Isikan 05H ke reg. A

1801 05

1802 06 LD B, 02H Isikan 02H ke reg. B

1803 02

1804 0E LD C, 03H Isikan 03H ke reg. C

1805 03

1806 16 LD D, 07H Isikan 07H ke reg. D

1807 07

1808 1E LD E, 09H Isikan 09H ke reg. E

1809 09

180A 26 LD H, 0AH Isikan 0AH ke reg. H

180B 0A

180C 2E LD L, 0BH Isikan 0BH ke reg. L

180D 0B

180E FF RST 38H Kembali ke display

1807 07

1808 1E LD E, 09H Isikan 09H ke reg. E

Setelah selesai mengetikan program pada MPF-1 lakukan perintah sebagai berikut berturut-turut dan periksa isi register :

Tekan : PC, STEP, REG. AF maka pada display akan terlihat : | 05 XXAF | Reg. A adalah : 05

Tekan : PC, STEP, REG. BC maka pada display akan terlihat : | 02 XXBC | Reg. B adalah : 02

Tekan : PC, STEP, REG. BC maka pada display akan terlihat : | 02 03BC | Reg. BC adalah : 0203

Tekan : PC, STEP, REG. DE maka pada display akan terlihat : | 07 XXDE | Reg. D adalah : 07

Tekan : PC, STEP, REG. DE maka pada display akan terlihat : | 07 09DE | Reg. DE adalah : 0709

Tekan : PC, STEP, REG. HL maka pada display akan terlihat : | 0A XXHL | Reg. H adalah : 0A

Tekan : PC, STEP, REG. HL maka pada display akan terlihat : | 0A OBHL | Reg. HL adalah : 0AOB

Ulangi program di atas dengan memasukkan data sebagai berikut dan mulai dari

address 1800H: Register :

A = 20H B = 85H C = 31H D = 51H E = 34H H = 31H L = 65H


(12)

Program II :

Address Op-Code Mnemonic Keterangan

1800 3E LD A, 05H Isikan 05H ke reg. A

1801 05

1802 47 LD B, A Kutip isi reg. A ke reg. B

1803 0E LD C, FFH Isikan FFH ke reg. C

1804 FF

1805 59 LD E, C Kutip isi reg C ke reg. E

1806 63 LD H, E Kutip isi reg E ke reg. H

1807 FF RST 38H Kembali ke display.

Setelah selesai mengetikkan pada MPF-1, lakukan langkah-langkah seperti pada program I. Lakukan lagi Program II di atas dengan memasukkan data-data sebagai berikut :

A = 20H C = DEH Susun programnya ! Program III :

Address Op-Code Mnemonic Keterangan

1800 06 LD B, 19H Isikan 19H ke reg. B

1801 19

1802 CE LD C, 00H Isikan 00H ke reg. C

1803 00

1804 50 LD D, B Kutip isi reg B ke reg. D

1805 0A LD A, (BC) Kutip isi memori yang

ditunjukkan oleh address pada reg. BC ke dalam reg. A.

1806 21 LD HL, 1910H Isikan address memori

1910H pada reg. HL.

1807 10

1808 19

1809 5E LD E, (HL) Kutip isi memori yang

ditunjukkan oleh address pada reg. HL ke dalam reg. E.

180A DD LD IX, 1915H Isikan address memori

1915H pada reg. IX.

180B 21

180C 15

180D 19

180E DD LD B, (IX + 0) Kutip isi memori yang ditunjukkan oleh address pada reg. (IX + 0) = 1915H ke reg. B.

180F 46


(13)

1811 DD LD C, (IX + 5) Kutip isi memori yang ditunjukkan oleh address pada reg. (IX + 5) = 191AH ke reg. C.

1812 4E

1813 05

1814 FF RST 38 Kembali ke display.

1900 0A

1910 12

1915 45

191A 65

Setelah selesai mengetikkan pada MPF-1, maka lakukan langkah-langkah serta perintah-perintah untuk memeriksa register-register yang digunakan, seperti pada Program I dan Program II.

Ulangi Program III tersebut dengan mengganti data-data yang lain sebagai berikut :

Register :

B = 18H C = 50H HL = 1900H IX = 1905H

Address :

1850H = 05H 1900H = 50H 1905H = AEH 190A = 03H

Pada modul pratikum sekarang rancang program pada MPF-1 dengan ketentuan sebagai berikut :

Data-data address :

1900H = 12H 1905H = 05H 1910H = 0BH 1915H = 02H 1920H = ABH

Setelah program dijalankan maka akan didapat hasil sebagai berikut :

Register : IX = 1900H BC = 1915H HL = 1920H D = 12H E = 05H A = 0BH

IY = 1930H

Address : 1925H = 02H 1930H = ABH


(14)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 4 Praktikum Mikroprosesosr.

Operasi Aritmatika dan Operasi Logika

Semester 3 1 SKS 2 x 60”)

A. Operasi Aritmatika

I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat : 1. Menjalankan program operasi aritmatika serta mengecek isi setiap register yang

digunakan.

2. Menjalankan program operasi logika serta mengecek isi setiap register yang digunakan.

III. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 4).

3. Unit Address Decoder. III. Teori Dasar

Pada dasarnya hanya terdapat 5 macam operasi aritmatik yang dapat dilaksana-kan oleh mikroprosesor Z-80. Operasi aritmatik tersebut adalah penjumlahan, pengurangan, tambah satu, kurang satu dan membandingkan.

Operasi penjumlahan itu ada dua macam yaitu ADD dan ADC (penjumlahan dengan carry-nya). Operasi pengurangan juga ada dua macam yaitu SUB dan SBC (pengurangan dengan carry-nya). Selain itu dapat dibedakan dibedakan operasi 8 bit dengan operasi 16 bit. Untuk operasi 8 bit salah satu datanya harus berada pada register A (Akumulator).

Mnemonic dan arti simbolnya pada operasi 8 bit adalah sebagai berikut : Mnemonic Arti simbol / Simbol operasi

ADD A, S ADC A, S SUB A, S SBC A, S INC s DEC s CP s

A  A + s A  A + s + cy A  A - s A  A - s - cy s  s + 1 s  s - 1

A - s (dimana harga A tetap). Keterangan :

S : register A, B, C, D, E, H, L, n, (HL), (IX + d), (IY + d) n : data 8 bit langsung

cy : carry

Mnemonic dan arti simbolnya pada operasi 16 bit adalah sebagai berikut : Mnemonic Arti simbol / Simbol operasi

ADD A, S ADC A, S SBC A, S ADD IX, pp

HL  HL + ss HL  HL + ss + cy HL  HL - ss – cy IX  IX + pp


(15)

ADD IY, rr INC tt DEC tt

IY  IY + rr tt  tt + 1 tt  tt - 1 Keterangan :

ss : untuk BC, DE, SP, HL pp : untuk BC, DE, SP, HL rr : untuk BC, DE, SP, HL tt : untuk semua register 16 bit

B. Operasi Logika

Operasi logika itu terdiri dari AND, OR, NOT, EXOR. Adapun tabel kebenaran dari operasi logika, sbb :

AND OR EXOR

P Q (P x Q) P Q (P + Q) P Q (P  Q)

0 0 1 1

0 1 0 1

0 0 0 1

0 0 1 1

0 1 0 1

0 1 1 1

0 0 1 1

0 1 0 1

0 1 1 0 Contoh :

P = 10110010B = B2H P = 10110010B = B2H P = 10110010B = B2H Q = 01101010B = 6AH Q = 01101010B = 6AH Q = 01101010B = 6AH --- AND --- OR ---EXOR 00100010B = 22H 11111010B = FAH 11011000B = D8H

C. Register Flag

Register flag merupakan register pembantu terhadap operasi aritmatik dan operasi logika. Bentuk bentuannya berupa menyimpan tanda keadaan bilamana terjadi carry, non-carry, borrow, zero, parity / overflow. Letak difinisi simpan 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 P/V : parity / overflow Z : zero N : non-carry

H : halfcarry C : carry

Dengan adanya operasi aritmatik atau logika maka kejadian dari register F dapat dibuat tabel sebagai berikut :

Bit Nama Flag Keterangan

0 C 0 : operasi aritmatik/logika tidak terjadi carry 1 : operasi aritmatik/logika terjadi carry 1 N 0 : operasi yang telah terjadi bukan substract

1 : operasi yang telah terjadi adalah substract 2 P/V 0 : parity even (genap) atau tidak terjadi overflow


(16)

1 : parity odd (ganjil) atau terjadi overflow

3 - Tidak digunakan.

4 H 0 : adisi / substract non-carry di bit 4 reg. A 1 : adisi / substract ada carry di bit 4 reg. A

5 - Tidak digunakan.

6 Z 0 : hasil operasi aritmatik / logik tidak nol 1 : hasil operasi aritmatik / logik = nol

7 S 0 : hasil operasi aritmatik / logik adalah positif 1 : hasil operasi aritmatik / logik adalah negatif Program I :

Address Op-Code Mnemonic Keterangan

1800 1803 1805 1807 1809 180B 180C 180E 1810 1811 1814 1815 1816 1817 1818 1819 181B 181D 181F 1820 1821

3A 20 18 06 09 0E 0A 16 03 1E 04 80 3E 00 CE 00 A0 3A 21 18 B0 AF 1C 15 B8 D6 02 DE 01 ED 44 2F FF 0A

LD A(1820H) LD B, 09H LD C, 0AH LD D, 03H LD E, 04H ADD A, B LD A, 00H ADC A, 00H AND A, B LD A, (1821) OR A, B XOR A INC E DEC D CP B

SUB A, 02H SBC A, 01H NEG

CPL RST 38H DEFB 0AH

A  (1820H) B  09H C  0AH D  03H E  04H A  A + B A  00H

A  A + 00H + cy A  A AND B A  (1821) A  A OR B A  A XOR A E  E + 1 D  D – 1 A  B, A TETAP A  A – 02H A  A – 01 – cy A  negatif A A  komplemen A KEMBALI KE DISPLAY Ketikkanlah program tersebut pada MPF-1 dan cek isi dari setiap register yang digunakan dan terangkan mengenai masing-masing register flagnya yaitu dengan melihat isi dari register flag setelah terjadi operasi aritmatik / logik jika setelah perintah STEP.

Program II : Program penjumlahan bilangan heksadesimal satu byte.

Address Op-Code Mnemonic Keterangan

1800 1802 1804 1805 1806 1E 05 16 06 7B 82 6F

LD E, 05H LD D, 06H LD A, E ADD A, D LD L, A

E  05H D  06H A  E A  A + D


(17)

1807 1809 180B 180C 180F 1810

3E 00 CE 00 67 22 10 18 FF 00 00 00

LD A, 00H ADC A, 00H LD H, A

LD (1810H), HL RST 38H

L  A A  00H

A  A + 00H + cy H  A

(1810H)  HL

Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang digunakan dan register F setelah terjadi operasi aritmatik. Cek juga isi dari register HL dan isi dari address 1810H (bandingkan isinya).

Ubah data pada register E dengan BFH dan isi register D dengan 62H seperti program di atas.

Program III :

Address Op-Code Mnemonic Keterangan

1800 1802 1804 1805 1806 1807 1808 180A 180D

1E 0A 16 06 AF 7B 9A 6F 26 00 22 0E 18 FF

LD E, 0AH LD D, 06H XOR A LD A, E SBC A, D LD L, A LD H, 00H LD (180EH), HL RST 38H

E  0AH D  06H A  A XOR A A  E

A  A – D – cy L  A

H 00H (180EH)  HL

KEMBALIKE DISPLAY

Ketikkan program tersebut pada MPF-1 kemudian cek masing-masing register yang digunakan dan register flagnya. Cek juga isi dari register HL dan isi dari address 180EH. Ubah isi register E = 08H dan register D = 03H.

Program IV :

Tugas : Buatlah program penjumlahan 2 byte dengan ketentuan sebagai berikut : - data 1 berada pada address 1850H yaitu 1324H

- data 2 berada pada address 1853H yaitu 2415H

Setelah mencoba dengan data tersebut maka ubah datanya dengan yang lainnya !


(18)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 5 Praktikum Mikroprosesosr.

Pemrograman dengan Stack Pointer (Instruksi PUSH dan POP)

Semester 3 1 SKS 2 x 60”)

I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat : 1. Menjalankan program operasi aritmatika dengan instruksi PUSH dan POP serta

melihat isi dari register SP maupun address yang bersangkutan. II. Alat dan Bahan praktikum :

1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 5).

3. Unit Address Decoder. III. Teori Dasar

Stack pointer adalah memori tempat simpan isi register 16 bit yang hanya berkaitan dengan operasi penyimpanan PUSH dan operasi pengambilan POP. Register SP (stack pointer) adalah pencatat address stack dan memiliki sifat menunjuk ke address memori dan memounyai sifat yang berbeda dengan penunjuk address memori lainnya. Operasi register SP selalu berkaitan dengan operasi PUSH dan POP, dimana operasi ini khusus menyimpan dan mengambil isi register BC, DE, HL, IX, IY dan register AF di stack. Instruksi tersebut dapat dijabarkan sebagai berikut :

- Instruksi PUSH qq : (SP – 1) ---- qq (high)

(SP – 2) ---- qq (low) sehingga setelah instruksi PUSH qq maka address register SP (stack pointer) itu adalah : SP --- SP – 2

- Instruksi POP qq : qq (low) ---- (SP)

qq (high) ---- (SP + 1) sehingga setelah instruksi POP qq maka address register SP (stack pointer) itu adalah : SP --- SP + 2

Jadi, instruksi PUSH dan POP itu harus digunakan berpasangan. Agar lebih jelas perhatikan program di bawah ini.

LD SP, 1980H : register SP mencacat address 1980, yaitu address awal stack pointer. LD DE, 1850H : register DE diisi angka 1850H

LD BC, AAFEH : register BC diisi angka AAFEH PUSH DE : simpan isi register DE ke stack PUSH BC : simpan isi register BC ke stack

POP HL : isi stack terakhir dimasukkan ke register HL POP IX : isi stack terakhir dimasukkan ke register IX Keterangan program :

i). Sebelum dilakukan instruksi PSH dan POP isi register SP adalah 1980H.

ii). Setelah PUSH DE berlangsung, isi register D tersimpan di memori dengan address 197FH dan isi register E tersimpan di memori dengan address 197EH. Register SP


(19)

menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi 197EH.

Jadi hasil dari PUSH DE adalah :

- memori yang address-nya 197FH berisi 18H - memori yang address-nya 197EH berisi 50H - register SP menjadi berisi 197EH

iii). Setelah PUSH BC berlangsung, isi register B tersimpan di memori dengan address 197DH dan isi register C tersimpan di memori dengan address 197CH. Register SP menggeser isi catatannya sebanyak 2 kali ke bawah sehingga isi register SP menjadi 197CH.

Jadi hasil dari PUSH BC adalah :

- memori yang address-nya 197DH berisi AAH - memori yang address-nya 197CH berisi FEH - register SP menjadi berisi 197CH

iv). Setelah POP HL berlangsung, maka isi register L menjadi FEH dan isi register H menjadi AAH. Register SP menggeser isi catatannya sebanyak 2 kali ke atas, sehingga isi register SP menjadi 197FH. Isi memori yang address-nya 197CH dan 197DH sudah berubah dan bukan FEH maupun AAH.

- register HL menjadi berisi AAFEH - register SP menjadi berisi 197EH

- isi address memori 197FH dan 197EH buan lagi 18H dan 50H - isi address memori 197DH dan 197CH buan lagi AAH dan FEH

v). Setelah POP IX berlangsung, maka isi register IX menjadi berisi 1850H dan register SP menggeser catatan kembali berisi 1980H.

Pada MPF Z-80 register SP tidak harus disetm karena pada MPF Z-80 register SP sudah diset oleh program ROM yang ada pada address 1F9FH.

IV. Langkah Kerja Program I :

Address Op-Code Mnemonic Keterangan

1800 1803 1806 180A 180B 180D 180E 1810

31 00 19 01 10 19 DD 21 20 19 C5

DD E5 E1 FD E1 FF

LD SP, 1900H LD BC, 1910H LD IX, 1920H PUSH BC PUSH IX POP HL POP IY RST 38H

Set register SP pada 1900H BC  1910H

IX  1920H SP – BC SP – IX HL – SP IY – SP

Kembali le display

Setelah mengetikkan program pada MPF-1 maka periksa isi dari register-register dan address-address yang terlibat pada program di atas dengan instruksi STEP.

Ubah isi dari register SP = 1820H, BC = 1900H, IX = BCDAH dan periksa register-register maupun address yang bersangutan.

Program II :

Program mengalikan semua data pada address 1900H sampai dengan 1905H dengan angka 8.


(20)

Address Op-Code Label Mnemonic Keterangan 1800 1802 1805 1806 1807 1809 180A 180C 180D 180E 180F 1811 1900 1901 1902 1903 1904 06 05 21 00 19 C5 7E 06 03 87 10 FD 77 23 C1 10 F4 FF 01 02 03 04 05 Loop Perkalian ORG. 1800H LD B, 05H LD HL, 1900H PUSH BC LD A, (HL) LD B, 03H ADD A, A

DJNZ PERKALIAN LD (HL), A

INC HL POP BC DJNZ LOOP RST 38H ORG. 1900H DEFB 01H DEFB 02H DEFB 03H DEFB 04H DEFB 05H

B  05H HL  1900H SP  BC A  (HL) B  03H A  A + A (HL)  A HL  HL + 1 BC  SP

Kembali ke display

Setelah mengetikkan program pada MPF-1 maka periksa isi masing-masing register dan address-address yang terlibat pada program di atas dengan instruksi STEP.

Setelah itu ubah data pada address 1900H sampai dengan 1904H dan jalankan program tersebut dan periksa isi masing-maisng register dan addres yang terlibat. Program III :

Address Op-Code Label Mnemonic Keterangan

1800 1803 1806 180A 180B 180D 180E 1820 1822 1825 1827 1828 1829 1830 1833 1836

01 20 18 11 26 18 DD 21 2C 18 C5

DD E5 D5 06 64 DD E1 CD 24 06 10 FB C1 D1

C3 0A 18 30 02 02 0F 1F 85 3F 6F 85

Loop

Tamp

ORG. 1800H LD BC, 1820H LD DE, 1826H LD IX, 182CH PUSH BC PUSH IX PUSH DE LD B, 64H POP IX

CALL SCAN 1 DJNZ TAMP POP BC POP DE JP Loop ORG. 1830H

BC – 1820H DE – 1826H IX – 182CH P – BC SP – IX SP – DE B – 64H IX – SP Menampilkan BC – SP DE – SP

UPF – 1 FISIKA


(21)

1839 183C 183F

AE 89 0F 00 00 A7 87 89 00

ITB

Setelah pengetikan program pada MPF-1, maka periksa register-register yang digunakan beserta address-nya. Setelah memeriksa register serta address-nya maka ubah data tampilan dengan sembarang data dan perhatikan register-register yang digunakan beserta address-nya.


(22)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 6 Praktikum Mikroprosesosr.

Program Pelayanan Subroutine-1 pada MPF Z-80

Semester 3 1 SKS 2 x 60”) I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program dengan layanan subroutine guna menampilkan nyala lampu LED berganti-ganti dengan tetapan waktu.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 6).

3. Unit Address Decoder (8 buah LED). III. Teori Dasar

Pada MPF-1 terdapat subroutine- subroutine yang sangat bermanfaat untuk mencapai tujuan pemrograman. Subroutine-subroutine itu adalah :

A. Subroutine Scan1 dengan address awal 062411

Fungsi : Menyajikan nyala tuliasan di LED secara multiplex dan melakukan scanning tombol satu siklus, meliputi 6 buah LED dan 36 tombol

Jangka waktu : 9,97 mdetik.

Input : Data angka atau data huruf pelayanan LED berjumlah 6 byte dan harus ter-simpan berurutan dalam memori yang ditunjukkan oleh register IX. Untuk LED yang paling kanan datanya harus berada pada address paling tinggi, sedangkan untuk LED yang paling kiri harus berada pada address yang paling rendah.

Output : Jika tombol tidak ditekan, bit carry flag tetap satu. Jika tombol ditekan maka carry flag akan menjadi nol dan memberikan kode posisi tombol yang tersimpan pada register A.

B. Subroutine Scan dengan address awal 05FEH

Fungsi : Menyajikan nyala tuliasan di LED secara multiplex dan melakukan scanning tombol, meliputi 6 buah LED dan 36 tombol dalam satu siklus.

Jangka waktu : Terus-menerus sampai ada salah satu tombol yang ditekan.

Input : Data harus disimpan berurutan di memori dengan urut nyala LED paling kanan harus berada pada address paling tinggi, sedangkan untuk LED yang paling kiri harus berada pada address yang paling rendah.

Output : Jika tombol tidak ditekan, bit carry flag tetap satu. Jika tombol ditekan maka carry flag akan menjadi nol dan memberi internal tombol yang tersimpan pada register A.

C. Subroutine HEX7 dengan address awal 0689H

Fungsi : Mengubah data 4 bit terendah di register A menjadi data nyala angka LED. Output : Berada pada register A.


(23)

Fungsi : Mengubah data 8 bit (1 byte) di register A menjadi 2 nyala LED.

Output : Berada di memori yang address awal harus dicatat oleh register HL. Data nyala LED berasal dari nible rendah register A berada di HL dan nible tinggi berada pada (HL + 1).

IV. Langkah Kerja Program I :

Address Op-Code Label Mnemonic Keterangan

1800 1803 1804 1806 1807 1808 1809 180A 180C 180E 180F 1810 1811 1813 1816 1819 181A 181B 181E 1822 1825 1850 1851 1852 1853 1854 1900 1903

21 50 18 97 16 00 46 23 86 5F 3E 00 CE 00 82 57 78 10 F4 21 00 19 CD 78 06 AF 7A CD 78 06 DD 21 00 19 CD FE 05 76 04 05 04 02 06

00 00 00 00 00 00

COUNT.

ORG. 1800H LD HL, 1850H SUB A

LD D, 00H LD B, (HL) INC HL ADD A, (HL) LD E, A LD A, 00H ADC A, 00H ADD A, D LD D, A LD A, E

DJNZ COUNT. LD HL, 1900H CALL HEX7SG XOR A

LD A, D

CALL HEX7SG LD IX, 1900H CALL SCAN HALT

ORG. 1850H DEFB 04H DEFB 05H DEFB 04H DEFB 02H DEFB 06H ORG. 1900H

HL  1850H A  A - A D  00H B  (HL) HL  HL + 1 A  A + (HL) E  A

A  00H

A  A + 00H + CY A  A + D

D  A A  E HL  1900H ROUT. HEX7SG A  A XOR A A  D

ROUT. HEX7SG IX  1900H ROUT.SCAN JML. DATA DATA 1 DATA 2 DATA 3 DATA 4 BUFFER

Setelah mengetikkan program pada MPF-1 maka perhatikan hasil pada tampilan di display, dan ubah beberapa kali data yang ada pada address 1850 sampai dengan address 1854.

Program II :


(24)

1800 1802 1806 1809 180B 180E 1810 1812 1813 1815 1820 1826 1832 1838 183E 1844 184A 1850 0E 08

DD 21 29 18 11 06 00 D6 64 CD 24 06 10 FB DD 19 0D 20 F4 C3 09 18

C7 AE 8F 2B 8F AE 9B 97 3F 8F 03 A7 30 02 02 0F 1F B5 00 40 A7 3F 85 00 00 3F 97 85 8F 00 3F A7 05 AE 05 0F 00 00 A7 67 05 00 00 9B BE BE 03 00

LOOP TAMP

ORG. 1800H LD C, 08H LD IX, 1820H LD DE, 0006H LD B, 64H CALL SCAN1 DJNZ TAMP ADD IX, DE DEC C JRNZ LOOP JP LOOP ORG. 1820 DEFW DEFW DEFW DEFW DEFW DEFW DEFW DEFW

C  08H IX  1820H DE  0006H B  64H ROUT. SCAN1 IX  IX + DE C  C – 1

SEMEST BREAK2 UPF-1 LAB. ELKA FISIA ITB 1992

Setelah mengetikan program pada MPF-1 maka perhatikan tampilan pada display dan bandingkan dengan program pada instruksi PUSH / POP program sebelumnya.

Program III :

Address Op-Code Label Mnemonic Keterangan

1800 1802 1806 1808 180B 180D 180F 1810 1812 1820 1825 1829 182D 1831 1837 183D 1840 1844 DE 53 DD 21 20 18 06 64

CD 24 06 10 FB DD 23 0D 20 F4 C3 00 18 00 03 8F 87 AE 8F 2B 8F AE 00 9B 02 97 3F 8F 03 A7

00 03 A3 AE 8F AE A3 03 1F A3 03 97 89 2B 00

37 8F 85 A3 00 2B B5 89 03 A3 87

LOOP TAMP.

ORG. 1800H LD C, 53H LD IX, 1820H LD B, 64H CALL SCAN1 DJNZ TAMP INC IX DEC C JRNZ LOOP JP 1800H ORG. 1820H DEFW SEMEST DEFW BREAK-DEFW MIKROP

DEFW OLEH DEFW LABOR

C 53H IX 1820H ROUT.SCAN1 IX IX + 1 C  C – 1

ER 2


(25)

184A 1850 1856 185C 1863 1868

3F 85 A3 A7 3F 85 00 3F 97 89 23 A3 03 87 97 8F 85 8F 00 3F 97 89 AE 89 0F 00 A7 87 89 00 9B BE BE 30

DEFW ELEKTR DEFW FISIKA DEFW ITB DEFW 1992

ATORIUM ONIKA

Setelah mengetikan program ini maka periksalah tampilan pada display. Setelah mengerti logika program maka ubah sedikit program di atas agar data yang ditampilkan itu bergeser ke kanan.


(26)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 7 Praktikum Mikroprosesosr.

Program Pelayanan Subroutine-2 pada MPF Z-80

Semester 3 1 SKS 2 x 60”) I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program dengan layanan subroutine guna membunyikan nada dengan frekuensi yang berbeda-beda.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 7).

3. Unit Address Decoder (untuk speaker). III. Teori Dasar

- SUBRUOTINE TONE dengan address awal 05E4H

Fungsi : Memberikan nada di mana frekunsi dan lamanya dapat kita pilih.

Input : Register C sebagai input untuk menentukan frekuensi nada dengan rumus : f = 200 /{10 + 3 (isi register C)} kHz

T = {44 + 13 (isi register C)} x 2 x 0,56 mikrodetik

Register HL diisi dengan bilangan 16 bit dari 0000H sampai maksimum 7FFFH dan isi HL ini menentukan lama suara yang timbul pada loudspeaker. Output : Nada loudspeaker

- SUBRUOTINE TONE1k dengan address awal 05DEH

Fungsi : Memberikan nada pada frekuensi 1 KHz dengan lama suara dapat kita pilih. Input : Register HL diisi dengan bilangan 0000H hingga 7FFFH untuk menentukan

lama suara. Ouput : Nada loudspeaker

- SUBRUOTINE TONE2k dengan address awal 05E2H

Untuk subroutine TONE2K sebenarnya sama dengan subroutine TONE1K hanya berbeda pada frekuensi yang dihasilkan. Frekuensi yang dihasilkan oleh subroutine TONE2K adalah 2 KHz.

- SUBRUOTINE RAMCHK dengan address awal 05F6H

Fungsi : Untuk memeriksa adanya RAM pada suatu address dengan menguji pelaksa-naan simpannya.

Output : Jika RAM ada dan pelaksanaan simpannya baik bit zero flag akan menjadi satu. Jika pada address tersebut pelaksanaan simpannya jelek atau tidak ada RAM-nya maka bit zero flag-nya menjadi nol.

Cara menggunakan RAMCHK :

LD HL, address awal RAM yang akan diperiksa. LD BC, jumlah address RAM yang akan diperiksa. Check RAM : CALL RAMCHK ; atau call 06F6H


(27)

JR Z, Check HALT Check : CPI

JP PE, Check RAM RST 00H

IV. Langkah Kerja Program I :

Address Op-Code Label Mnemonic Keterangan

1800 1802 1803 1805 1808 180B 180D 1810 1813 1814 1816 1818 181C 181F 1820 1822 1900 1903 06 0B C5 0E D3 21 08 00 CD E4 05 0E 8C 21 12 00 CD E4 05 C1

10 EC 16 FF

DD 21 00 19 CD 24 06 15

20 FA C3 00 18

00 8F 23 A3 1F 00

LOOP

TAMP.

ORG. 1800H LD B, 0BH PUSH BC LD C, D3H LD HL, 0008H CALL TONE LD C, 8CH LD HL, 0012H CALL TONE POP BC DJNZ LOOP LD D, FFH LD IX, 1900H CALL SCAN1 DEC D

JRNZ TAMP. JP 1800H ORG. 1900H DEFW PONE

B  0BH SP  BC C  D3H HL  0000H SUBR. TONE C  8CH HL  0012H SBR. TONE BC  SP D  FFH IX  1900H SBR. SCAN1 D  D - 1 KEMBALI KE AWAL

Pada program di atas frekuensi bunyi pertama adalah adalah 320 Hz dan lamanya 25 msec, sedangkan bunyi kedua frekuensinya 480 Hz dan lamanya 25 msec.

Program II :

Address Op-Code Label Mnemonic Keterangan

ORG. 1800H 1800 1803 1805 1808 180B 180F 1810 1811 1814

CD 3A 18 0E 06 11 00 00 21 50 18 DD 21 00 19 7E

E5

DD 77 00 DD 21 00 19

LOOP1

CALL CLEAR LD C, 0AH LD BC, 0000H LD HL, 1850H LD IX, 1900H LD A, (HL) PUSH HL LD (IX + 0), A LD IX, 1900H

SBR. CLEAR C  0AH BC  0000H HL  1850H IX  1900H A  (HL) SP  HL (IX)  A IX  1900H


(28)

1818 181B 181E 181F 1820 1821 1823 1824 1826

CD 2A 18 CD 3A 18 E1

23 13 DD 19 0D 20 E9 C3 00 18

CALL TAMPILAN CALL CLEAR POP HL INC HL INC DE ADD IX, DE DEC C RNZ LOOP1 JP 1800H

SBR. TAMPILAN SBR. CLEAR HL - SP HL  HL + 1 DE  DE + 1 IX  IX + DE C  C - 1

SUBROUTINE TAMPILAN ORG. 182AH 182A

182C 182F 1831

06 64 CD 24 06 10 FB C9

TAMP.

LD B, 64H CALL SCAN1 DJNZ TAMP. RETI

B  64H SBR. SCAN1 KEMNALI KE PRO-GRAM INDUK. SUBROUTINE CLEAR

ORG. 183AH 183A

183C 183F 1840 1841 1842 1844 1850

06 10 21 00 19 AF 77 23 10 FC C9

A7 A7 A7 A7 A7 A7

LD B, 10H LD HL, 1900H XOR A

CLEAR LD (HL), A INC HL

DJNZ CLEAR RET

DEFB

B  10H HL  1900H A  A XOR A (HL)  A HL  HL + 1 KEMNALI KE PRO-GRAM INDUK. DATA

Program di atas adalah menampilkan karakter pada buffer yang address awalnya adalah 1900H. Sebelum menampilkan maka pada address tersebut di clear setelah itu isikan data yang ada pada register HL ke register IX untuk ditampilkan, lalu dari address 1900H di clear, kemudian reg. IX dan reg. HL di increment, begitu seterusnya.


(29)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 8 Praktikum Mikroprosesosr.

Program Pelayanan Subroutine-3 pada MPF Z-80

Semester 3 1 SKS 2 x 60”) I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program dengan layanan subroutine guna penjumlahan, pengurangan, dan perkalian.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 8).

3. Unit Address Decoder. III. Langkah Kerja

Program I :

Address Op-Code Label Mnemonic Keterangan

ORG. 1800H 1800 1802 1804 1806 1807 1809 180C 180F 1812 1814 1817 181A 181D 181F 1822 1825 1828 182C 182F 26 02 1E 05 16 10 7A FE 10 C2 12 18 CD 30 18 CD 50 18 FE 05 C2 1D 18 CD 39 18 CD 50 18 FE 01 C2 28 18 CD 42 18 CD 50 18 DD 21 10 19 CD FE 05 76

LOOP1

LOOP2

LOOP3

LD H, data1 LD B, data2 LD D, tanda LD A, D CP 10H JPNZ 1812H CALL Penjumlahan CALL Tampilan CP 05H

JPNZ 181DH CALL Pengurangan CALL Tampilan CP 01H

JPNZ 1828H CALL Perkalian CALL Tampilan LD IX, 1910H CALL Scan HALT

H  Data1 B  Data2 D  Tanda A  D Tand=penj. (Loop1) Sbr.Penjml. Sbr.Tamp. Tand=Pengr. (Loop2) Sbr.Pengr. Sbr.Tamp. Tand=Perkl. (Loop3) Sbr.Perkl. Sbr.Tamp. Jika salah tanda

SUBROUTINE PENJUMLAHAN ORG. 1830H 1830 1831 1832 1833 1835 1837 1838 7B 84 4F 3E 00 CE 00 47 C9

LD A, E ADD A, E LD C, A LD A, 00 ADC A, 00 LD B, A RET


(30)

SUBROUTINE PENGURANGAN ORG. 1839H

1839 183A 183B 183C 183E 1840 1841

7B 94 4F 3E 00 DE 00 47 C9

LD A, E SUB A, H LD C, A LD A, 00 SBC A, 00 LD B, A RET

SUBROUTINE PERKALIAN ORG. 1842H

1842 1844 1845 1846 1847 1849 184A 184B 184C 184D 184F

06 00 7B 83 4F 3E 00 88 47 79 25 20 F6 C9

LOOP4

LD B, 00H LD A, E ADD A, E LD C, A LD A, 00 ADC A, B LD B, A LD A, C DEC H JRNZ loop 4 RET

SUBROUTINE TAMPILAN ORG. 1850H 1850

1854 1857 185A 185D 1861 1864

ED 43 00 19 21 00 19 3A 00 19 CD 78 06 DD 21 00 19 CD FE 05 76

LD (1900), BC LD HL, 1900 LD A, (1900) CALL Hex7SG LD IX, 1900H CALL SCAN HALT

ORG. 1900H 1900

1910 1913

00 00 00 00 B3 23 87 77 85 AE

DEFW DEFW DEFW

Temp. Hasil Slh. Tnd.

Program di atas adalah program untuk penjumlahan, pengurangan dan perkalian yang hasilnya dikonversi ke desimal. Dimana data dimasukkan register H, data 2 dimasukkan register B dan tanda dimasukkan register D. Jika dalam memasukkan tanda selain penjumlahan (10H), pengurangan (05H) dan perkalian (01H) maka pada tampilan akan tampak SLH.TND.


(31)

Program II :

Address Op-Code Label Mnemonic Keterangan

ORG. 1800H 1800 1801 1803 1806 1808 1809 180B 180B 180F 1813 1816 1819 181C 1820 1823 1825 1827 1827 1828 182C 1830 1833 1836 1839 183D 1840 1842 1844 1844 1845 1848 184B 184F 1853 1854 1855 1858 185B 185E 185E 185F 1862 1865 1868 AF 06 24 21 71 18 36 00 23 10 FB FD 21 71 18 DD 21 7D 18 CD FE 05 FD 77 00 CD 5E 18 DD 21 7D 18 CD FE 05 FE 10 20 F9 AF

FD 21 77 18 DD 21 7D 18 CD FE 05 FD 77 00 CD 5E 18 DD 21 7D 18 CD FE 05 FE 12 20 F9 AF 21 71 18 11 77 18 DD 21 83 18 FD 21 89 18 1A

86

DD 77 00 FD 77 00 CD 5E 18 AF 21 8F 18 FD 7E 00 CD 78 06 DD 21 8F 18

LOOP

DISPL1

DISPL2

XOR A LD B, 24 LD HL, data LD (HL), 00H INC HL DJNZ Loop AUGEND

LD IY, AUGEND LD IX, NULL CALL Scan LD (IY + 00H), A CALL Konversi LD IX, NULL CALL Scan CP 10H JRNZ Displ1 ADDENT XOR A

LD IY, ADDENT LD IX, NULL CALL Scan LD (IY + 00H), A CALL Konversi LD IX, NULL CALL Scan CP 12H JRNZ Displ2 Kalkulasi XOR A

LD HL, AUGEND LD DE, ADDENT LD IX, SUM1 LD IY, SUM2 LD A, (DE) ADD A, (HL) LD (IX + 00H), A LD (IY + 00H), A CALL Konversi SBR. KONVERSI XOR A

LD HL, Result LD A, (IY + 00H) CALL Hex7SG LD IX, Result

A A XOR A B 24H HL addr.data (HL) 00H HL HL + 1

IY AUGEND IX NULL (IY + 00H) A Sbr.Konversi IX NULL

Bandingkan dg.10H

A A XOR A IY ADDENT IX NULL (IY + 00H) A Sbr.Konversi IX NULL

Bandingkan dg.12H A A XOR A HL AUGEND DE ADDENT IX  SUM1 IY  SUM2 A  (DE) A A + (HL) (IX + 00H) A (IY + 00H) A Sbr.Konversi A A XOR A HL  Result A (IY + 00H)


(32)

186C 1970 1871 1871 1877 187D 1883 1889 188F

CD FE 05 C9

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

CALL Scan RET

AUGEND ADDENT NULL SUM1 SUM2 RESULT

IX  Result

Program di atas data1 dan data2 yang akan dijumlahkan dimasukkan langsung dari display yaitu dengan cara memasukkan data1 lalu tekan (+) dua kali masukkan data2 kemudian tekan GO dua kali maka akan tampak hasilnya. Apabila ingin melakukan lagi langsung dengan cara yang sama seperti di atas.


(33)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 9 Praktikum Mikroprosesosr.

Program Menyalakan LED dengan Address Decoder

Semester 3 1 SKS 2 x 60”) I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program untuk menunjukkan akses dari address decoder melalui nyala LED dan / atau suara.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 9).

3. Unit Address Decoder. 4. Unit LED.

III. Langkah Kerja

Program I : Tujuannya untuk menunjukkan akses dari address decoder. Untuk melakukan praktikum, hubungkan kabel pelangi dari MPF-1 ke konektor yang sesuai pada board praktikum. Hubungkan catu daya +5 volt ke board MPF-1.

Address Op-Code Label Mnemonic Keterangan

0000 00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 1850 1800 1801 1803 1806 1808 180B 180D 1810 1812 1815 1817 181A 181C 181F

AF D3 C0 CD 1850 D3 C1 CD 1850 D3 C2 CD 1850 D3 C3 CD 1850 D3 C4 CD 1850 D3 C5 CD 1850 D3 C6

ASEG

ADDE_LED_1 EQU 0C0H ADDE_LED_2 EQU 0C1H ADDE_LED_3 EQU 0C2H ADDE_LED_4 EQU 0C3H ADDE_LED_5 EQU 0C4H ADDE_LED_6 EQU 0C5H ADDE_LED_7 EQU 0C6H ADDE_LED_8 EQU 0C7H DELAY EQU 1850H ORG. 1800H

XOR A

OUT(ADDR_LED_1), A CALL DELAY

OUT(ADDR_LED_2), A CALL DELAY

OUT(ADDR_LED_3), A CALL DELAY

OUT(ADDR_LED_4), A CALL DELAY

OUT(ADDR_LED_5), A CALL DELAY

OUT(ADDR_LED_6), A CALL DELAY

OUT(ADDR_LED_7), A

; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala


(34)

1821 1824 1826 1829

CD 1850 D3 C7 CD 1850 CD 1800 CALL DELAY OUT(ADDR_LED_8), A CALL DELAY

JP 1800

; set lamanya nyala ; set lamanya nyala ; kembali ke awal

program. Subroutin delay ORG. 1850H 1850 1852 1854 1856 1857 1859

16 FF 06 FB 10 FE 15 20 F9 C9

LOOP1: LOOP2:

LD D, 0FFH LD B, 0FFH DJNZ LOOP2 DEC D

JRNZ, LOOP1 RET

END

Program II : Tujuannya untuk menunjukkan akses dari address decoder sebelum menyalakan LED akan membunyikan suara dulu kemudian mengakses address decoder, setelah mengakses address decoder akan menampilkan address decoder yang diakses.

Address Op-Code Label Mnemonic Keterangan

ORG. 1800H 0000 00C0 0624 0678 05E4 1800 1900 1900 1850 1800 1802 1804 ; Untuk 1805 1807 180A 180D 180E 180F 1811 1812 1815 1816 26 08 2E C0 E5 menimbulka 0E 0C 21 00AA CD 05E4 ; Untuk me E1 4D ED 79 E5 CD 1850 E1 2C LOOP1: n bunyi de

ngakses ad

ASEG

ADDR_LED EQU 0C0H SCAN_1 EQU 0624H HEX_7SG EQU 0678H TONE EQU 05E4H ADDR_AWAL_PROG EQ BUFF_DATA EQU 1900H BUFF_TAMP EQU 1900H DELAY EQU 1850H ORG.1800H

LD H,08H

LD L, ADDR_LED PUSH HL

ngan frek = 365 Hz dan lama LD C, 0CH

LD HL, 00AAH CALL TONE

dress decoder c0h s/d C7H. POP HL

LD C, L OUT (C), A PUSH HL CALL DELAY POP HL INC L

U 1800H


(35)

1817 1818 181A

25 20 EA C3 1800

DEC H

JRNZ, LOOP1

JP ADDR_AWAL_PROG ; Subroutine delay:

ORG. 1850H 1850

1852 1854 1856 1857 1859 185B 185C 185F 1863 1866 1868 186B 186D 186E 186F

16 FF 06 FF 10 FE 15 20 F9 16 02 7D 21 1900 DD 21 1900 DD 0678 06 64 CD 0624 10 FB 15 20 F6 C9

LOOPA: LOOPB:

LOOP2: LOOP3:

LD D, 0FFH LD B, 0FFH DJNZ LOOPB DEC D

JRNZ, LOOPA LD D, 02H LD A, L

LD HL, BUFF_DATA LD IX, BUFF_TAMP CALL HEX_7SG LD B, 64H CALL SCAN_1 DJNZ LOOP3 DEC D

JRNZ, LOOP2 RET

; Buffer data dan buffer tampilan 1900

1902

00 00 00 00 00 00

DEFB 00H, 00H

DEFB 00H, 00H, 00H, 00H END



SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA


(36)

Mikroprosesosr. suatu Bilangan melalui Buffer Memori.

2 x 60”)

I.

Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat : 1. Menjalankan program untuk menentukan hasil kuadrat dari suatu bilangan pada tabel

yang dimasukkan pada buffer memori. II. Alat dan Bahan praktikum :

1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 10).

3. Unit Address Decoder. III. Langkah Kerja

Program I :

Address Op-Code Label Mnemonic Keterangan

0000 1819 1821 1900 067B 05FE 1800 1803 1804 1806 1809 180A 180B 180E 1812 1815 1818 1819 181A 181E 1900 1904

3A 1819 6F 26 00 11 1821 19 7E 21 1900 DD 21 1900 CD 0678 05FE 76 03

00 01 04 09 16 25 36 49 00 00 00 00 00 00 00 00

; Z80 ASEG ;

BUFFER_DATA EQU 1819H BUFFER_TABEL EQU 1821H BUFFER_TAMPILAN EQU 1900H XEX7SG EQU 0678H

SCAN EQU 05FEH ;

ORG 1800H

LD A, (BUFFER_DATA) LD L, A

LD H, 00H

LD DE, BUFFER_TABEL ADD HL, DE

LD A, (HL)

LD HL, BUFFER_TAMPILAN LD IX, BUFFER_TAMPILAN CALL HEX7SG

CALL SCAN HALT

;

ORG 1819H DEFB 03H

DEFB 00H, 01H, 04H, 09H DEFB 16H, 25H, 36H, 49H ;

ORG 1900H

DEFB 00H, 00H, 00H, 00H DEFB 00H, 00H, 00H, 00H END

Program II :


(37)

1840 1880 0678 0624 1860 1870

0000 1800 1803 1804 1805 1806 1808 1809 180B 180E 1811

1840 1843 1846 184A 184D

1860 1864 1868

1870

1880 1884

21 1860 46 97 23 30 01 7E 10 FA 32 1870 CD 1840 76

21 1880 CD 0678 DD 21 1880 CD 0624 C9

0A 02 04 03 05 0B 07 C3 AA 01 05

00 00 00 00

00 00 00 00 00 00 00

LOOP1:

LOOP2:

TAMPIL EQU 1840H BUFF_TAMP EQU 1880H HEX7SG EQU 0678H SCAN EQU 0624H BUFF_DATA EQU 1860H BUFF_HASIL EQU 1870H ;

Z80 ASEG ORG. 1800H

LD HL, BUFF_DATA LD B, (HL)

SUB A INC HL

JR NC, LOOP2 LD A, HL DJNZ LOOP1

LD (BUFF_HASIL), A CALL TAMPIL

HALT ORG. 1840H

LD HL, BUFF_TAMP CALL HEX7SG LD IX, BUFF_TAMP CALL SCAN

RET ORG. 1860

DEFB 0AH, 02H, 03H, 04H DEFB 05H, 0BH, 07H, 0C3H DEFB 0AAH, 01H, 05H ORG. 1870H

DEFB 00H, 00H, 00H, 00H ORG. 1880H

DEFB 00H, 00H, 00H, 00H 00H, 00H, 00H

END


(1)

186C 1970 1871 1871 1877 187D 1883 1889 188F

CD FE 05 C9

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

CALL Scan RET

AUGEND ADDENT NULL SUM1 SUM2 RESULT

IX  Result

Program di atas data1 dan data2 yang akan dijumlahkan dimasukkan langsung dari display yaitu dengan cara memasukkan data1 lalu tekan (+) dua kali masukkan data2 kemudian tekan GO dua kali maka akan tampak hasilnya. Apabila ingin melakukan lagi langsung dengan cara yang sama seperti di atas.


(2)

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA

Jobsheet 9 Praktikum Mikroprosesosr.

Program Menyalakan LED dengan Address Decoder

Semester 3 1 SKS 2 x 60”) I. Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program untuk menunjukkan akses dari address decoder melalui nyala LED dan / atau suara.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 9).

3. Unit Address Decoder. 4. Unit LED.

III. Langkah Kerja

Program I : Tujuannya untuk menunjukkan akses dari address decoder. Untuk melakukan praktikum, hubungkan kabel pelangi dari MPF-1 ke konektor yang sesuai pada board praktikum. Hubungkan catu daya +5 volt ke board MPF-1.

Address Op-Code Label Mnemonic Keterangan 0000

00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 1850 1800 1801 1803 1806 1808 180B 180D 1810 1812 1815 1817 181A 181C 181F

AF D3 C0 CD 1850 D3 C1 CD 1850 D3 C2 CD 1850 D3 C3 CD 1850 D3 C4 CD 1850 D3 C5 CD 1850 D3 C6

ASEG

ADDE_LED_1 EQU 0C0H ADDE_LED_2 EQU 0C1H ADDE_LED_3 EQU 0C2H ADDE_LED_4 EQU 0C3H ADDE_LED_5 EQU 0C4H ADDE_LED_6 EQU 0C5H ADDE_LED_7 EQU 0C6H ADDE_LED_8 EQU 0C7H DELAY EQU 1850H ORG. 1800H

XOR A

OUT(ADDR_LED_1), A CALL DELAY

OUT(ADDR_LED_2), A CALL DELAY

OUT(ADDR_LED_3), A CALL DELAY

OUT(ADDR_LED_4), A CALL DELAY

OUT(ADDR_LED_5), A CALL DELAY

OUT(ADDR_LED_6), A CALL DELAY

OUT(ADDR_LED_7), A

; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala ; set lamanya nyala


(3)

1821 1824 1826 1829

CD 1850 D3 C7 CD 1850 CD 1800

CALL DELAY

OUT(ADDR_LED_8), A CALL DELAY

JP 1800

; set lamanya nyala ; set lamanya nyala ; kembali ke awal

program. Subroutin delay

ORG. 1850H 1850

1852 1854 1856 1857 1859

16 FF 06 FB 10 FE 15 20 F9 C9

LOOP1: LOOP2:

LD D, 0FFH LD B, 0FFH DJNZ LOOP2 DEC D

JRNZ, LOOP1 RET

END

Program II : Tujuannya untuk menunjukkan akses dari address decoder sebelum menyalakan LED akan membunyikan suara dulu kemudian mengakses address decoder, setelah mengakses address decoder akan menampilkan address decoder yang diakses.

Address Op-Code Label Mnemonic Keterangan ORG. 1800H

0000 00C0 0624 0678 05E4 1800 1900 1900 1850 1800 1802 1804 ; Untuk 1805 1807 180A 180D 180E 180F 1811 1812 1815 1816

26 08 2E C0 E5

menimbulka 0E 0C 21 00AA CD 05E4 ; Untuk me E1

4D ED 79 E5 CD 1850 E1 2C

LOOP1: n bunyi de

ngakses ad

ASEG

ADDR_LED EQU 0C0H SCAN_1 EQU 0624H HEX_7SG EQU 0678H TONE EQU 05E4H ADDR_AWAL_PROG EQ BUFF_DATA EQU 1900H BUFF_TAMP EQU 1900H DELAY EQU 1850H ORG.1800H

LD H,08H

LD L, ADDR_LED PUSH HL

ngan frek = 365 Hz dan lama LD C, 0CH

LD HL, 00AAH CALL TONE

dress decoder c0h s/d C7H. POP HL

LD C, L OUT (C), A PUSH HL CALL DELAY POP HL INC L

U 1800H


(4)

1817 1818 181A

25 20 EA C3 1800

DEC H

JRNZ, LOOP1

JP ADDR_AWAL_PROG ; Subroutine delay:

ORG. 1850H 1850

1852 1854 1856 1857 1859 185B 185C 185F 1863 1866 1868 186B 186D 186E 186F

16 FF 06 FF 10 FE 15 20 F9 16 02 7D 21 1900 DD 21 1900 DD 0678 06 64 CD 0624 10 FB 15 20 F6 C9

LOOPA: LOOPB:

LOOP2: LOOP3:

LD D, 0FFH LD B, 0FFH DJNZ LOOPB DEC D

JRNZ, LOOPA LD D, 02H LD A, L

LD HL, BUFF_DATA LD IX, BUFF_TAMP CALL HEX_7SG LD B, 64H CALL SCAN_1 DJNZ LOOP3 DEC D

JRNZ, LOOP2 RET

; Buffer data dan buffer tampilan 1900

1902

00 00 00 00 00 00

DEFB 00H, 00H

DEFB 00H, 00H, 00H, 00H END



SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA


(5)

Mikroprosesosr. suatu Bilangan melalui Buffer Memori.

2 x 60”) I. Tujuan Praktikum : Setelah mahasiswa/i melakukan praktikum diharapkan dapat :

1. Menjalankan program untuk menentukan hasil kuadrat dari suatu bilangan pada tabel yang dimasukkan pada buffer memori.

II. Alat dan Bahan praktikum : 1. Piranti MPF-1 Z-80.

2. Lembar Tugas / Kerja (Job sheet 10).

3. Unit Address Decoder. III. Langkah Kerja

Program I :

Address Op-Code Label Mnemonic Keterangan 0000

1819 1821 1900 067B 05FE 1800 1803 1804 1806 1809 180A 180B 180E 1812 1815 1818 1819 181A 181E 1900 1904

3A 1819 6F 26 00 11 1821 19 7E 21 1900 DD 21 1900 CD 0678 05FE 76 03

00 01 04 09 16 25 36 49 00 00 00 00 00 00 00 00

; Z80 ASEG ;

BUFFER_DATA EQU 1819H BUFFER_TABEL EQU 1821H BUFFER_TAMPILAN EQU 1900H XEX7SG EQU 0678H

SCAN EQU 05FEH ;

ORG 1800H

LD A, (BUFFER_DATA) LD L, A

LD H, 00H

LD DE, BUFFER_TABEL ADD HL, DE

LD A, (HL)

LD HL, BUFFER_TAMPILAN LD IX, BUFFER_TAMPILAN CALL HEX7SG

CALL SCAN HALT

;

ORG 1819H DEFB 03H

DEFB 00H, 01H, 04H, 09H DEFB 16H, 25H, 36H, 49H ;

ORG 1900H

DEFB 00H, 00H, 00H, 00H DEFB 00H, 00H, 00H, 00H END

Program II :


(6)

1840 1880 0678 0624 1860 1870

0000 1800 1803 1804 1805 1806 1808 1809 180B 180E 1811

1840 1843 1846 184A 184D

1860 1864 1868

1870

1880 1884

21 1860 46 97 23 30 01 7E 10 FA 32 1870 CD 1840 76

21 1880 CD 0678 DD 21 1880 CD 0624 C9

0A 02 04 03 05 0B 07 C3 AA 01 05

00 00 00 00

00 00 00 00 00 00 00

LOOP1:

LOOP2:

TAMPIL EQU 1840H BUFF_TAMP EQU 1880H HEX7SG EQU 0678H SCAN EQU 0624H BUFF_DATA EQU 1860H BUFF_HASIL EQU 1870H ;

Z80 ASEG ORG. 1800H

LD HL, BUFF_DATA LD B, (HL)

SUB A INC HL

JR NC, LOOP2 LD A, HL DJNZ LOOP1

LD (BUFF_HASIL), A CALL TAMPIL

HALT ORG. 1840H

LD HL, BUFF_TAMP CALL HEX7SG LD IX, BUFF_TAMP CALL SCAN

RET ORG. 1860

DEFB 0AH, 02H, 03H, 04H DEFB 05H, 0BH, 07H, 0C3H DEFB 0AAH, 01H, 05H ORG. 1870H

DEFB 00H, 00H, 00H, 00H ORG. 1880H

DEFB 00H, 00H, 00H, 00H 00H, 00H, 00H

END