Modul Prakt Sistem Mikroprosesor

52
MODUL PRAKTIKUM SISTEM MIKROPROSESOR SEMESTER : IV (EMPAT) JUMLAH SKS : 1 ( 2 x 50” ) DISUSUN OLEH : SISWAYA, A.Md.,S.Pd

description

Modul Prakt Sistem Mikroprosesor

Transcript of Modul Prakt Sistem Mikroprosesor

JOB SHEET PRAKTIKUM

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

2012SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 1Praktikum Mikroprosesosr.Kelompok Fungsi dari Tombol dan Register MPF Z-80Semester 31 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.

USER KEY: Tombol yang dapat didefinisikan oleh pemakai.

B. Kelompok tombol Hexa dan Nama Register

Label

(Register / Hexadecimal)Kegunaan

AF

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

BC

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

DE

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

HL

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

AF

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

HL

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

BC

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

DE

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

IX

8Tombol angka 8H atau register IX.

IY

9Tombol angka 9H atau register IY.

SP

ATombol angka AH atau register SP.

I*IF

BTombol angka BH atau interrupt register flag.

SZ*H

CTombol angka CH

PNC

DTombol angka DH

SZ*H

ETombol angka EH

PNC

FTombol 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

Ini berarti kemampuan untuk menyimpan data 16 bit atau 2 byte atau 1 word.

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 Terperinci1. 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.2. Register F (Flag Register)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) (non-

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.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 2Praktikum Mikroprosesosr.Deskripsi Fungsi

Tombol-tombol pada MPF-1Semester 31 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 memori tertentu. Setelah menekan tombol INS maka penunjukkan address pada 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 :

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.

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 play20. Tombol INTR dan USERKEY tidak didefinisikan.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 3Praktikum Mikroprosesosr.Modus Pengalamatan dan Isi Memori DataSemester 31 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.

IV. Langkah Kerja

Modus Pengalamatan

Ketikkan program berikut ke MPF-1:

Program I :

AddressOp-CodeMnemonicKeterangan

18003ELD A, 05HIsikan 05H ke reg. A

180105

180206LD B, 02HIsikan 02H ke reg. B

180302

18040ELD C, 03HIsikan 03H ke reg. C

180503

180616LD D, 07HIsikan 07H ke reg. D

180707

18081ELD E, 09HIsikan 09H ke reg. E

180909

180A26LD H, 0AHIsikan 0AH ke reg. H

180B0A

180C2ELD L, 0BHIsikan 0BH ke reg. L

180D0B

180EFFRST 38HKembali ke display

180707

18081ELD E, 09HIsikan 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

Susunan programnya !Program II :

AddressOp-CodeMnemonicKeterangan

18003ELD A, 05HIsikan 05H ke reg. A

180105

180247LD B, AKutip isi reg. A ke reg. B

18030ELD C, FFHIsikan FFH ke reg. C

1804FF

180559LD E, CKutip isi reg C ke reg. E

180663LD H, EKutip isi reg E ke reg. H

1807FFRST 38HKembali 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 :

AddressOp-CodeMnemonicKeterangan

180006LD B, 19HIsikan 19H ke reg. B

180119

1802CELD C, 00HIsikan 00H ke reg. C

180300

180450LD D, BKutip isi reg B ke reg. D

18050ALD A, (BC)Kutip isi memori yang ditunjukkan oleh address pada reg. BC ke dalam reg. A.

180621LD HL, 1910HIsikan address memori 1910H pada reg. HL.

180710

180819

18095ELD E, (HL)Kutip isi memori yang ditunjukkan oleh address pada reg. HL ke dalam reg. E.

180ADDLD IX, 1915HIsikan address memori 1915H pada reg. IX.

180B21

180C15

180D19

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

180F46

181000

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

18124E

181305

1814FFRST 38Kembali ke display.

19000A

191012

191545

191A65

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

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 4Praktikum Mikroprosesosr.Operasi Aritmatika

dan Operasi LogikaSemester 31 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 :

MnemonicArti simbol / Simbol operasi

ADD A, S

ADC A, S

SUB A, S

SBC A, S

INC s

DEC s

CP sA ( 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 :

MnemonicArti simbol / Simbol operasi

ADD A, S

ADC A, S

SBC A, S

ADD IX, pp

ADD IY, rr

INC tt

DEC ttHL ( HL + ss

HL ( HL + ss + cy

HL ( HL - ss cy

IX ( IX + pp

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 :

ANDOREXOR

PQ(P x Q)PQ(P + Q)PQ(P ( Q)

0

0

1

10

1

0

10

0

0

10

0

1

10

1

0

10

1

1

10

0

1

10

1

0

10

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 :

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0

SZ-H-P/VNC

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 :

BitNama FlagKeterangan

0C0 : operasi aritmatik/logika tidak terjadi carry

1 : operasi aritmatik/logika terjadi carry

1N0 : operasi yang telah terjadi bukan substract

1 : operasi yang telah terjadi adalah substract

2P/V0 : parity even (genap) atau tidak terjadi overflow

1 : parity odd (ganjil) atau terjadi overflow

3-Tidak digunakan.

4H0 : adisi / substract non-carry di bit 4 reg. A

1 : adisi / substract ada carry di bit 4 reg. A

5-Tidak digunakan.

6Z0 : hasil operasi aritmatik / logik tidak nol

1 : hasil operasi aritmatik / logik = nol

7S0 : hasil operasi aritmatik / logik adalah positif

1 : hasil operasi aritmatik / logik adalah negatif

Program I :

AddressOp-CodeMnemonicKeterangan

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.

AddressOp-CodeMnemonicKeterangan

1800

1802

1804

1805

1806

1807

1809

180B

180C

180F

18101E 05

16 06

7B

82

6F

3E 00

CE 00

67

22 10 18

FF

00 00 00

LD E, 05H

LD D, 06H

LD A, E

ADD A, D

LD L, A

LD A, 00H

ADC A, 00H

LD H, A

LD (1810H), HL

RST 38HE ( 05H

D ( 06H

A ( E

A ( A + D

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 :

AddressOp-CodeMnemonicKeterangan

1800

1802

1804

1805

1806

1807

1808

180A

180D1E 0A

16 06

AF

7B

9A

6F

26 00

22 0E 18

FFLD E, 0AH

LD D, 06H

XOR A

LD A, E

SBC A, D

LD L, A

LD H, 00H

LD (180EH), HL

RST 38HE ( 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 !

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 5Praktikum Mikroprosesosr.Pemrograman

dengan Stack Pointer

(Instruksi PUSH dan POP)Semester 31 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 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 :

AddressOp-CodeMnemonicKeterangan

1800

1803

1806

180A

180B

180D

180E

1810

31 00 19

01 10 19

DD 21 20 19

C5

DD E5

E1

FD E1

FFLD SP, 1900H

LD BC, 1910H

LD IX, 1920H

PUSH BC

PUSH IX

POP HL

POP IY

RST 38HSet 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.

AddressOp-CodeLabelMnemonicKeterangan

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

05Loop

PerkalianORG. 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 05HB ( 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 :

AddressOp-CodeLabelMnemonicKeterangan

1800

1803

1806

180A

180B

180D

180E

1820

1822

1825

1827

1828

1829

1830

1833

1836

1839

183C

183F

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

AE 89 0F

00 00 A7

87 89 00Loop

TampORG. 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. 1830HBC 1820H

DE 1826H

IX 182CH

P BC

SP IX

SP DE

B 64H

IX SP

MenampilkanBC SP

DE SP

UPF 1

FISIKA

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.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 6Praktikum Mikroprosesosr.Program Pelayanan Subroutine-1 pada MPF Z-80Semester 31 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.

D. Subroutine HEX7SG dengan address awal 0678H

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 :

AddressOp-CodeLabelMnemonicKeterangan

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 00COUNT.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. 1900HHL ( 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. HEX7SGA ( 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 :

AddressOp-CodeLabelMnemonicKeterangan

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

TAMPORG. 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 :

AddressOp-CodeLabelMnemonicKeterangan

1800

1802

1806

1808

180B

180D

180F

1810

1812

1820

1825

1829

182D

1831

1837

183D

1840

1844

184A

1850

1856

185C

1863

1868

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

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 30LOOP

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

DEFW ELEKTR

DEFW FISIKA

DEFW ITB

DEFW 1992

C ( 53H

IX ( 1820H

ROUT.SCAN1

IX ( IX + 1

C ( C 1

ER

2

ROSESOR

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.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 7Praktikum Mikroprosesosr.Program Pelayanan Subroutine-2 pada MPF Z-80Semester 31 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

JR Z, Check

HALT

Check : CPI

JP PE, Check RAM

RST 00H

IV. Langkah Kerja

Program I :

AddressOp-CodeLabelMnemonicKeterangan

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 00LOOP

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 :

AddressOp-CodeLabelMnemonicKeterangan

ORG. 1800H

1800

1803

1805

1808

180B

180F

1810

1811

1814

1818

181B

181E

181F

1820

1821

1823

1824

1826

CD 3A 18

0E 06

11 00 00

21 50 18

DD 21 00 19

7E

E5

DD 77 00

DD 21 00 19

CD 2A 18

CD 3A 18

E1

23

13

DD 19

0D

20 E9

C3 00 18

LOOP1CALL 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

CALL TAMPILANCALL CLEAR

POP HL

INC HL

INC DE

ADD IX, DE

DEC C

RNZ LOOP1

JP 1800HSBR. CLEAR

C ( 0AH

BC ( 0000H

HL ( 1850H

IX ( 1900H

A ( (HL)

SP ( HL

(IX) ( A

IX ( 1900H

SBR. TAMPILAN

SBR. CLEARHL - 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

C9TAMP.LD B, 64H

CALL SCAN1

DJNZ TAMP.

RETIB ( 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 A7LD B, 10H

LD HL, 1900H

XOR A

CLEAR LD (HL), A

INC HL

DJNZ CLEAR

RET

DEFBB ( 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.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 8Praktikum Mikroprosesosr.Program Pelayanan Subroutine-3 pada MPF Z-80Semester 31 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 :

AddressOp-CodeLabelMnemonicKeterangan

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

LOOP3LD H, data1

LD B, data2

LD D, tanda

LD A, D

CP 10H

JPNZ 1812H

CALL PenjumlahanCALL 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

18387B

84

4F

3E 00

CE 00

47

C9LD A, E

ADD A, E

LD C, A

LD A, 00

ADC A, 00

LD B, A

RET

SUBROUTINE PENGURANGAN

ORG. 1839H

1839

183A

183B

183C

183E

1840

18417B

94

4F

3E 00

DE 00

47

C9LD 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

184F06 00

7B

83

4F

3E 00

88

47

79

25

20 F6

C9LOOP4LD 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

1864ED 43 00 19

21 00 19

3A 00 19

CD 78 06

DD 21 00 19

CD FE 05

76LD (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 AEDEFW

DEFW

DEFWTemp. 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.

Program II :

AddressOp-CodeLabelMnemonicKeterangan

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

186C

1970

1871

1871

1877

187D

1883

1889

188F

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

CD FE 05

C9

00 00 00

00 00 00

00 00 00

00 00 00

00 00 00

00 00 00

LOOP

DISPL1

DISPL2XOR 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

CALL Scan

RET

AUGEND

ADDENT

NULL

SUM1

SUM2

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)

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.

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 9Praktikum Mikroprosesosr.Program Menyalakan LED dengan Address DecoderSemester 31 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.

AddressOp-CodeLabelMnemonicKeterangan

0000

00C0

00C1

00C2

00C3

00C4

00C5

00C6

00C7

1850

1800

1801

1803

1806

1808

180B

180D

1810

1812

1815

1817

181A

181C

181F

1821

1824

1826

1829AF

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

CD 1850

D3 C7

CD 1850

CD 1800ASEG

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

CALL DELAY

OUT(ADDR_LED_8), A

CALL DELAY

JP 1800

; set lamanya nyala

; set lamanya nyala

; set lamanya nyala

; set lamanya nyala

; set lamanya nyala

; set lamanya nyala

; 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.

AddressOp-CodeLabelMnemonicKeterangan

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

1817

1818

181A26 08

2E C0

E5

menimbulka

0E 0C

21 00AA

CD 05E4

; Untuk me

E1

4D

ED 79

E5

CD 1850

E1

2C

25

20 EA

C3 1800

LOOP1:

n bunyi de

ngakses adASEG

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

DEC H

JRNZ, LOOP1

JP ADDR_AWAL_PROG

U 1800H

nya 0,73 detik.

; Subroutine delay:

ORG. 1850H

1850

1852

1854

1856

1857

1859

185B

185C

185F

1863

1866

1868

186B

186D

186E

186F16 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

C9LOOPA:

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

190200 00

00 00 00 00DEFB 00H, 00H

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

END

(((((((((((((((((((((((SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA YOGYAKARTA

Jobsheet 10Praktikum Mikroprosesosr.Menentukan hasil Kuadrat dari suatu Bilangan melalui Buffer Memori.Semester 31 SKS

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 :

AddressOp-CodeLabelMnemonicKeterangan

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, 00HEND

Program II :

AddressOp-CodeLabelMnemonicKeterangan

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

--ooo00(((00ooo--