Modul Prakt Sistem Mikroprosesor
-
Upload
achmad-jazuli -
Category
Documents
-
view
326 -
download
5
description
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--