Materi Mengenal Mikroprosesor Ziloc 80 (Z-80)

DIKTAT

SISTEM MIKROPROSESOR

Materi Mengenal Mikroprosesor Ziloc 80 (Z-80) SIGIT PRIYAMBODO JURUSAN TEKNIK ELEKTRO INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2006

BAB I PENDAHULUAN

1.1 PENGANTAR

Perkembangan teknologi elektronika dewasa ini mengalami peningkatan yang sangat pesat. Perkembangan ini cenderung mengarah pada peningkatan optimalisasi kecepatan kerja dan minimalisasi. Artinya peralatan dan komponen elektronika diupayakan menggunakan materi dan ukuran yang semakin kecil tetapi mempunyai kemampuan kecepatan maupun kerja yang lebih tinggi. Dapat dilihat dewasa ini banyak terdapat produk rangkaian terintegrasi yang lebih dikenal dengan nama IC ( integrated circuit). Hanya dengan satu serpih rangkaian IC saja sudah dapat menggantikan fungsi umum dari beberapa rangkaian yang rumit dan kompleks. Misalnya dalam bidang komputer, komponen mikro komputer yang dapat melakukan pengolahan data yang meliputi operasi-operasi aritmatika dan logika dalam satu serpih secara internal, dewasa ini sangat mudah diperoleh salah satunya adalah mikroprosesor Z-80. Mikroprosesor ini relatif murah yang beredar di pasaran jika dibandingkan dengan jenis mikroprosesor lainnya.

Salah satu dampak positif dari perkembangan teknologi elektronika dibidang rangkaian terintegrasi, adalah menuntut para peneliti dibidang elektronika untuk terus berkarya dan mengembangkan ide-idenya untuk dapat menemukan peralatan-peralatan elektronika yang semakin canggih. Hal ini sangat dimungkinkan karena dewasa ini seseorang dapat merakit suatu peralatan Salah satu dampak positif dari perkembangan teknologi elektronika dibidang rangkaian terintegrasi, adalah menuntut para peneliti dibidang elektronika untuk terus berkarya dan mengembangkan ide-idenya untuk dapat menemukan peralatan-peralatan elektronika yang semakin canggih. Hal ini sangat dimungkinkan karena dewasa ini seseorang dapat merakit suatu peralatan

Komponen mikroelektronika yang dibuat dengan bantuan komputer dan selanjutnya komponen tersebut digunakan untuk membuat komputer dengan kemampuan yang lebih canggih. Kecendrungan itu juga didukung dengan kretivitas para peneliti dibidang elektronika yang demikian tinggi. Disamping tuntutan masyarakat konsumen yang menginginkan semua serba otomatis dan praktis. Perkembangan dan penerapan teknologi elektronika khususnya, mau tidak mau akan mewarnai segala bidang kehidupan. Mula-mula dari hal-hal yang sangat sederhana sampai kepada hal-hal yang lebih rumit dan kompleks, yang tidak mungkin dilakukan oleh manusia.

1.2 TEKNOLOGI MIKROPROSESOR

Dalam perkembangan teknologi mikroprosesor ini menduduki tempat yang sangat dibutuhkan oleh manusia modern. Alat elektronika modern hampir semua menggunakan chip ini, apalagi di jaman informasi bebas seperti sekarang ini kebutuhan akan mikro chip sangat berguna sekali baik dalam penggunaannya yang sangat efiseien, bentuknya yang mudah dibawa, atau yang mudah pengorperasiannya. Perancangan sistem elektronika ini ditetapkan dalam berbagai aplikasi. Mikroprosesor telah banyak digunakan dalam kalkulator saku, instrumen-instrumen laboratorium, barang-barang konsumer, sistem pengendali terbang dari pesawat terbang, sistem komputer perusahaan, dll. Ke semua itu dudukung oleh teknologi yang bernama mikrokomputer dengan mikro chip yang

Data program yang telah kita tuliskan dalam mikroprosesor akan hilang jika catu daya yang ada pada mikroprosesor mati, dan pemprogram harus memasukkan data program lagi agar mikroprosesor dapat bekerja lagi sesuai dengan yang diinginkan. Mungkin ini merupakan suatu kejadian yang kurang nyaman dan tentunya memerlukan suatu solusi untuk mengatasinya, agar data yang telah di-program tidak perlu lagi dimasukkan dalam mikroprosesor jika tiba- tiba catu daya mati. Fenomena seperti ini tentunya memerlukan suatu pemecahan yang tepat, penggunaan pita magnetik untuk memanggil dan menyimpan data merupakan solusi terbaik untuk mengatasi permasalahan seperti di atas, dimana kita tidak perlu lagi memasukkan data apabila catu data pada mikroprosesor mati.

BAB II SISTEM MIKROPROSESOR

2.1 Mikroprosesor

Dalam beberapa tipe mikroprosesor yang ada selama ini, banyak memiliki ciri yang sama. Perkembangan desainnya mendekati pada CPU dalam satu chip yang ideal dan lengkap, komputer yang demikian terdiri dari beberapa rangkaian yang terpadu yang disebut dengan IC. IC ini dapat melakukan penyimpanan program dan dirancang pula untuk melakukan perantaraan (interface) dengan mudah pada alat-alat yang ada diluar.

Dalam pembuatannya mikroprosesor mempunyai batasan kualitas ideal seperti pada gambar 2.1, suatu mikroprosesor mempunyai N saluran masukan dan keluaran. Karena mikroprosesor merupakan piranti digital maka hanya ada dua tingkatan tegangan yang dipasang pada salurana masukan dan juga akan muncul dua tingkatan tegangan pada keluaran. Kedua tegangan tersebut dinamakan dengan logika Nol dan logika Satu (bilangan bit).

Sinyal-sinyal pada saluran masukan adalah data masukan ke mikroprosesor, data-data tersebut dapat berasal dari saklar, sensor, papan tombol, atau peralatan lainnya. Didalam mikroprosesor yang ideal disimpan program mikroprosesor program tersebut adalah suatu kumpulan dari serangkaian perintah berurutan yang menentukan bagaimana program masukan diproses dan informasi apa yang harus dikirim ke saluran-saluran keluaran akibat dari data masukan.

Maka secara konseptual mikroprosesor adalah suatu alat digital yang menerima data dari sejumlah saluran masukan, memproses atau menurut ketentuan-ketentuan program yang disimpan dan menghasilkan sebuah sinyal keluaran sebagai akibat dari pemprosesan data tersebut. Tingkatan-tingkatan logika pada saluran keluaran mikroprosesor ditentukan oleh dua faktor :

1. Data yang lengkap dari sinyal masukan ke mikroprosesor.

2. Program mikroprosesor yang disimpan.

Program

Gambar 2.1. Mikroprosesor Ideal Kunci dari keserbagunaan dari mikroprosesor adalah bahwa bagi perangkat keras (hardware) yang sama atau yang sangat mirip, program-program dapat didesain untuk sejumlah besar pemakaian yang berbeda.

2.1.1 Bus Data

Mikroprosesor-mikroprosor yang riil tidak mampu mendapatkan kemewahan dari N saluran masukan dan M saluran keluaraan dengan bilangan – bilangan N dan M yang sangat besar, untuk kebanyakan mikroprosesor , N sama dengan M. Bilangan ini didefinisikan sebagai lebar jejak data atau ukuran kata

(word size) dari mikroprosesor yang bersangkutan. Satu parameter yang paling lazim digunakan dalam klasifikasi mikroprosesor adalah lebar jejak data. Saluran- saluran digunakan untuk mengangkut data dari mikroprosesor dan ke mikoprosesor secara kolektif disebut bus data. Gambar 2.2. memperlihatkan suatu mikroprosesor yang mempunyai lebar jarak data 8-bit (yaitu M = N = 8). Mikroprosesor ini hanya beroperasi pada data 8-bit, satu kata data dari 8-bit didefinisikan sebagai satu byte. Dalam hal mikroprosesor 8-bit yang diperlihatkan

pada gambar 2.3, kata data tersebut dibangun oleh 8 angka biner D 0 sampai D 7. D 0

disebut bit yang paling tidak berarti (Least Signification Bit disingkat LSB).

Gambar 2.2. Mikroprosesor 8-bit

D7 1 D6 1 D5 1 D4 0 D3 1 D2 0 D1 1 D0 1

Gambar 2.3. Suatu Bus Data dari Mikroprosesor 8-bit

D7 disebut bit yang paling berarti (Most Signifacant Bit) atau MSB kata data dalam bus dapat dinyatakan secara numerik dengan berbagai cara. Cara paling sederhana adalah dinyatakan sebagai notasi biner dalam bilangan biner. Dalam notasi ini kata data 8-bit ditunjukkan pada gambar 2.3. ditulis sebagai 11101011. Untuk menunjukkan bahwa bilangan ini suatu bilangan biner, bilangan tersebut dapat diberi akhiran dengan huruf B atau indek 2 sebagai berikut :

11101011 B atau 11101011 2

Kata data ini juga dapat dinyatakan sebagai suatu bilangan oktal. Dalam suatu oktal setiap kelompok dari tiga angka biner ditunjukkan satu bilangan antara

0 sampai 7 menurut tabel 2.1. Tabel ini dapat digunakan untuk mencari ekwivalen oktalnya dari kata biner :

1 1 1 0 1 0 1 1 biner

3 5 3 oktal

353 adalah ekwivalen oktal dari bilangan biner 11 101 011. Untuk menunjukkan bahwa bilangan tersebut notasi oktal, bilangan tersebut dapat diberi akhiran dengan huruf Q atau indek 8 sebagai berikut :

353 Q atau 353 8

Cara yang ketiga untuk menyatakan kata data (dan merupakan cara yang paling banyak digunakan sehubungan dengan mikroprosesor) adalah sebagai suatu bilangan heksadesimal, setiap gugusan dari 4-bit ditunjuk satu huruf, menurut tabel 2.2. Ekwivalen heksadesimal untuk bilangan biner diatas dapat diperoleh sebagai berikut :

Tabel 2.1.Angka oktal Bilangan Biner

Angka oktal

Tabel 2.2.Angka Heksadesimal

Bilangan Biner

Heksadesimal

0000 0 0001 1 0010 2 01 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 10 C 1101 D 1110 E 1111 F

Biner

E B Heksadesimal

EB adalah ekivalen heksadesimal dari bilangan biner 1110 1011 dari bilangan-bilangan oktal 353 kata heksadesimal biasanya disingkat dengan Hex. Bilangan Hex dapat diakhiri dengan huruf H atau dengan indek 16.

2.1.2 Bus Alamat

Untuk mikroprosesor ideal data keluaran dapat merupakan fungsi dari seluruh data dari seluruh masukan, sifat dari fungsi ini ditentukan oleh program mikroprosesor. Apabila mikroprosesor ideal dianggap mempunyai memori internal yang terbatas, mikroprosesor yang riil jumlah memori internal yang tersedia, untuk meyimpan data harus dibatasi, proses penyimpanan informasi dalam penyimpanan dalam memori tersebut penulisan memori, proses mengambil informasi dari memori tersebut pembacaan memori.

Informasi disimpan dalam memori pada kumpulan lokasi memori, suatu lokasi memori mempunyai alamat memori yang ditentukan dengan menggunakan notasi heksadesimal sebelum membaca dan menulis mikroprosesor harus memilih alamat memori yang dikehendaki dan mengeluarkan informasi ini pada bus alamat, kebanyakan mikroprosesor mempunyai bus alamat yang terpisah diperlihatkan pada gambar 2.4. bus alamat dapat pada logika 1 maupun pada logika 0 karena masing-masing mikroprosesor dengan p saluran alamat dapat

berhubungan dengan 2 p alamat tertentu. Memori

Bua alamat

Saluran bus dua arah

Gambar 2.4. Bus Alamat

Kata alamat dari mikroprosesor dapat dinyatakan dalam notasi heksadesimal dengan cara yang sama dengan kata data. Dalam penulisan alamat Kata alamat dari mikroprosesor dapat dinyatakan dalam notasi heksadesimal dengan cara yang sama dengan kata data. Dalam penulisan alamat

Seluruh kumpulan dari lokasi memori suatu mikroprosesor yang dapat dihubungi disebut ruang memori. Notasi heksadesimal digunakan untuk menyatakan alamat dari masing-masing lokasi dalam ruang memori. Untuk mikroprosesor dengan bus alamat 16-bit, lokasi memori yang paling rendah berada pada alamat 0000 sedangkan yang paling tinggi berada pada alamat FFFF

Gambar 2.5. Ruang Memori untuk Mikroprosesor dengan bus alamat 16-bit

Ukuran dari ruang memori dinyatakan dalam satuan kilokata (kiloword), dimana satu kilo kata sama dengan 2 10 atau 1024 kata-kata dalam hal satu kata

dengan 8-bit, satuannya adalah kilobyte yang sama dengan 1024 byte. Walaupun awalan kilo biasanya menunjukkan 1000 satuan, cara pemakaian yang agak dengan 8-bit, satuannya adalah kilobyte yang sama dengan 1024 byte. Walaupun awalan kilo biasanya menunjukkan 1000 satuan, cara pemakaian yang agak

2.1.3 Bus Kontrol

Selain bus data dan bus alamat mikroprosesor harus memiliki saluran pengendali untuk saluran masukan dan keluaran yang dapat digunakan untuk menyerempakkan operasi mikroprosesor dengan operasi luar. Saluaran pengendali ini yaitu berupa bus pengendali.

Dalam mikroprosesor disediakan suatu pengendali masukan khusus yang memungkinkan operasi DMA (direct memory access) masukan ini ditandai dengan masukan HOLD pada gambar 2.6, suatu sinyal “ 1 “ pada saluran HOLD suatu alat diluar meminta pengendali dari bus data dan alamat maka keadaannya ditempat pada tri state, pada gambar 2.7. dan keadaan ini secara efektif memutuskan bus data dan alamat pada mikroprosesor. Dan mikroprosesor akan memberi tanggapan pada permintaan HOLD dan mengeluarkan sinyal pengakuan HOLD pada saluran HLDA yang diperlihatkan pada gambar 2.7.

Sinyal pengendali dari bus pengendali yang diberikan dapat aktif tinggi atau rendah dalam contoh diatas (DBIN, HOLD, dan HLDA) sinyalnya yang disebut aktif tinggi karena isyarat logika 1 digunakan untuk menunjukkan isyarat dari isyarat aktif, apabila logika 0 menunjukkan bahwa bus data berada dalam modus masukan suatu garis diatas nama sinyal dan menunjukkna bahwa sinyal tersebut sinyal aktif rendah dan keluaran pengendali akan ditandai dengan DBIN yang dibaca “de be in garis”. Notasi garis sangat memudahkan untuk Sinyal pengendali dari bus pengendali yang diberikan dapat aktif tinggi atau rendah dalam contoh diatas (DBIN, HOLD, dan HLDA) sinyalnya yang disebut aktif tinggi karena isyarat logika 1 digunakan untuk menunjukkan isyarat dari isyarat aktif, apabila logika 0 menunjukkan bahwa bus data berada dalam modus masukan suatu garis diatas nama sinyal dan menunjukkna bahwa sinyal tersebut sinyal aktif rendah dan keluaran pengendali akan ditandai dengan DBIN yang dibaca “de be in garis”. Notasi garis sangat memudahkan untuk

Alat

1 Hold

Bus alamat

Memori

Bus data dua arah

Gambar 2.6. DMA Oleh Suatu Alat Luar

Saluran alamat

Saluran bus data dua arah

Gambar 2.7.Suatu Saluran Alamat dan Saluran Bus Data dua Arah

Masukan Pengendali Bus alamat

Bus pengendali

Keluaran pengendali

Saluran bus catu daya data dua arah

Gambar 2.8. Mikroprosesor Umum (Generaziled)

Mikroprosesor merupakan suatu alat digital dengan :

1. Bus data.

2. Bus alamat.

3. Bus pengendali. Mikroprosesor dapat memasukkan informasi sinyal digital, memproses

informasi menurut suatu program disimpan dan mengeluarkan informasi dalam bentuk sinyal digital program yang disimpan berada dalam memori yang ada di mikroprosesor dalam hal yang lain program tersebut disimpan dalam memori luar mikroprosesor.

Disamping ketiga bus diatas mikroprosesor memerlukan satu atau lebih tegangan catu daya untuk menjalankan rangkaian-rangkaian yang ada didalamnya dan untuk memberikan tegangan acuan untuk sinyal-sinyal mikroprosesor.

2.2 Memori

Dalam prosesnya mikroprosesor membutuhkan sebuah memori untuk dapat berfungsi. Program dan data yang diperlukan disimpan dalam mikrokomputer. Dua jenis memori dapat digunakan dalam suatu sistem mikroprosesor adalah Volatoil (mudah menguap) dan Nonvolatoil (tidak mudah menguap).

Memori volatoil mempunyai ciri bahwa sekali daya diambil maka data yang tersimpan akan hilang sedangkan memori non-volatoil data tidak akan hilang bila daya diambil. ROM (memori yang hanya untuk membaca) adalah salah satu dari memori non-volatoil yang mengandung informasi tetap yang tidak berubah atau susah untuk dirubah, sedangkan RAM (Random Access Memory) adalah salah satu dari contoh dari memori volatoil.

ROM dapat diprogram oleh pabrik maupun pemakai, ROM yang diprogram pabrik diberi suatu pola memori pada saat pembuatannya yang ditentukan oleh suatu proses (perisai metalisasi IC). ROM yang dapat diprogram oleh pemakai (EPROM) terdiri dari dua jenis. PROM yang disambung dengan pelelehan (fuse link) hanya dapat diprogram sekali dan erasable programmable ROM (EPROM) hanya dapat dihapus oleh pemakai dan diprogram kembali. Ada dua jenis EPROM yaitu : UV PROM (dihapus dengan penyinaran ultraviolet yang kuat), jenis EPROM yang lainnya adalah EAROM (Electrically alterable ROM) artinya ROM yang dapat dihapus secara elektronis. RAM digolongkan menjadi RAM statik dan RAM dinamik.

Di dalam RAM dinamik informasi disimpan sebagai urutan dan memori ini akan hilang jika tidak di refresh, suatu rangkaian penyegar diluar memori diperlukan jika mengandung RAM dinamik. Memori statik tidak memerlukan rangkaian penyegar, karena informasi yang disimpan dalam flip-flop yang ditahan (latched flip-flop).

2.3 Mikroprosesor dalam Organisasi Komputer

Bersamaan dengan komponen LSI lainnya, mikroprosesor dipakai untuk membuat sebuah komputer, mikroprosesor melaksanakan sebagian besar fungsi atau kerja unit pemproses sedangkan komponen lainnya melaksanakan fungsi memori, masukan/keluaran, dan fungsi lain yang diperlukan.

Semua komputer mempunyai organisasi logika yang sama dengan beberapa unit dasar. Fungsi utama unit pengendali adalah mengambil, mengkode, melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori.

Unit pengendali mengatur urutan operasi sebuah sistem khususnya untuk menghasilkan dan mengatur sinyal yang ada pada bus pengendali. Bus adalah sarana untuk sinyal ketiga bus standar yang digunakan untuk menghubungkan sistem mikroprosesor adalah bus data, bus alamat, dan bus pengendali.

Unit pengendali umumnya dihubungkan dengan ALU (Arit Metic and Logical Unit). Kombinasi unit pengendali dan ALU dinamakan unit pemproses pusat (CPU). Jadi pada dasarnya mikroprosesor adalah CPU pada suatu serpih.

Dalam mendesain sebuah komputer, CPU tidak harus diimplementasikan dalam bentuk komponen tunggal. Unit pengendali dapat terpisah dari ALU.

Modul memori digunakan untuk menyimpan informasi secara fungsional, memori berisi dua jenis informasi yaitu program dan data. Program adalah serangkaian instruksi yang telah disandikan dalam bentuk biner sehingga dapat menetap dalam memori elektronik.

Program menetapkan urutan langkah yang harus dilakukan oleh komputer dibawah pengawasan unit pengendali, masing-masing instruksi berurutan dalam suatu program diambil dan disimpan dalam sebuah register khusus unit pengendali, dimana instruksi-instruksi tersebut akan dikode dan dilaksanakan.

Data yang terdapat dalam memori diproses oleh ALU, biasanya data berupa angka atau huruf yang dipresentasikan dalam sistem biner. Istilah memori biasanya berbagai jenis memori yang mencakup memori utama (main memori). Memori utama digunakan untuk menyimpan program yang sedang dilaksanakan dan data yang diperlukan atau dihasilkan sewaktu pelaksanaannya. Memori utama yang khas adalah rangkaian terpadu LSI jenis MOS dan inti Magnetik. Waktu siklus yang khas untuk memori utama adalah dalam orde ratus nano detik. Memori massal dipakai untuk menyimpan program dan data. Dua modul lainnya adalah modul masukan dan keluaran kedua modul ini digunakan untuk komunikasi dengan dunia luar, modul masukan menyediakan informasi bagi ALU atau memori separti alat masukan keyboard. Modul keluaran menyajikan data yang datang dari ALU atau melaksanakan perintah-perintah. Modul keluaran yang khas adalah pencetak, lampu atau mekanisme (motor atau relay), juga LED dan LCD.

2.4 Bahasa Mesin Mikroprosesor

Operasi mikroprosesor dikendalikan oleh suatu program, dan program ini terdiri dari sekumpulan instruksi. Instruksi-instruksi ini disimpan sebagai barisan logika 1 dan logika 0 di dalam memori dan membentuk bahasa mesin dari mikroprosesor.

Mikroprosesor-mikroprosesor yang berbeda mempunyai perangkat instruksi yang berbeda yang dapat digunakan untuk menyusun program. Instruksi- instruksi dari mikroprosesor 8748 misalnya berbeda dengan instruksi-instruksi yang ada pada mikroprosesor 8080.

Apabila bekerja dengan suatu mikroprosesor sangat penting untuk memahami perangkat instruksi dan dapat menggunakan instruksi dalam menyusun program.

2.4.1 Pembuatan Program Bahasa Mesin

Walaupun kumpulan bahasa mesin berbeda dari satu prosesor yang lain. Pabrik dari 8080 dan 8085 menggunakan kumpulan numeric (singkatan untuk memudahkan untuk mempermudah dihafal) yang berbeda dengan pabrik Z-80 untuk masing-masing instruksi tersebut.

Untuk memberikan bagaimana instruksi dapat digunakan untuk menyusun suatu program mikroprosesor, suatu program yang sangat sederhana untuk menerima data 8-bit dari suatu pintu masukan, kemudian mengeluarkan data dari 8-bit ini keluar dari suatu pintu keluaran. Instruksi pertama yang diperlukan oleh program ini adalah instruksi input yang dikodekan dalam bahasa mesin sebagai :

Instruksi ini harus diikuti dengan byte kedua dari informasi untuk menentukan salah satu dari 257 pintu masukan yang mungkin. Untuk masukan ke pintu 1, misalnya, memerlukan kode.

Instruksi kedua dalam contoh program ini, adalah instruksi output, untuk pengeluaran data dari pintu 3 akan memerlukan kode sebagai berikut :

Untuk ringkasnya, dengan mempergunakan notasi hex, seluruh program sekarang dapat dituliskan sebagai :

Masing-masing byte dari program 4-byte memerlukan satu lokasi memori. Apabila program dimulai dari lokasi 0000H dalam memori, masing-masing byte akan mempunyai lokasi sebagai berikut :

LOKASI MEMORI ISI MEMORI

Sekarang misalkan pintu keluar terus-menerus diperbaharui dengan data muktahir dari pintu masuk. Untuk melakukan hal ini, suatu loop program (sinyal program) diciptakan dengan menambahkan instruksi jump (loncat) pada program tersebut. Sekarang program menjadi :

LOKASI INSTRUKSI KETERANGAN MEMORI

0001H

DB Masukan

0002H

01 dari pintu 1

0003H

D3 Keluaran

0004H

03 ke pintu 3

0005H

C3 Loncat ke

0006H

00 lokasi 00 (8-bit tingkat rendah) 0007H

00 00 (8-bit tingkat tinggi)

Instruksi yang pertama meminta data dimasukkan dari pintu 1, data ini disimpan dalam mikroprosesor dalam register yang disebut akumulator. Selanjutnya, mikroprosesor membaca instruksi yang berikut dalam memori, dan melaksanakan instruksi ini dengan mengeluarkan informasi yang ada di akumulator, ke pintu keluaran 3. Instruksi yang ketiga menyebabkan program mulai lagi dari lokasi 0000H, dan sikluspun berulang-ulang.

Waktu yang diperlukan untuk melaksanakan satu loop dalam contoh program tersebut dapat dihitung dengan mudah. Banyaknya siklus pewaktu (status mesin = machine status) yang diperlukan untuk, melaksanakan masing-masing instruksi. Untuk suatu 8080 dengan pewaktu 2 MHz masing-masing siklus pewaktu memerlukan 0,5 µ s masing-masing dari ketiga instruksi dalam contoh program memerlukan 10 siklus pewaktu. Waktu seluruhnya yang diperlukan untuk satu loop menjalani program adalah : (10 + 10 + 10) x 0,5 µ s = 15 µ s

Apabila pewaktu yang digunakan 4MHz maka waktu yang diperlukan akan separuh dari yang digunakan dengan pewaktu 2 MHz.

Masuk

ROM

4 an

Accum

bus data

Reset

Keluaran

Gambar 2.9. Diagram Operasi Program

2.4.2 Register-register

RAM dalam mikroprosesor disusun dalam register-register. Satu register yang demikian adalah akumulator. Sebagian besar dari instruksi bahasa mesin didesain untuk memindahkan data dari dan ke register-register atau untuk memanipulasi data yang disimpan dalam register-register tersebut. Dalam suatu mikroprosesor seringkali terdapat register bendera yang terdiri dari satu kumpulan bit-bit bendera (flag bits). Bit-bit ini dipasang (set) dan direset selama program mikroprosesor mencatat kondisi-kondisi khusus dalam pelaksanaan instruksi. Informasi yang disimpan sebagai bit bendera mengandung informasi yang bermanfaat yang dapat ditanyakan oleh program mikroprosesor.

Bit-bit bendera dari mikroprosesor 8080 merupakan contoh-contoh dari bit-bit bendera yang terdapat dalam mikroprosesor-mikropsoesor yang lain. Bit-bit bendera ini adalah :

1. Nol.

2. Tanda.

3. Parity (paritas).

4. Carry (pindahan).

5. auxiliary (pembantu) carry. Bendera nol dipasang pada logika 1, apabila hasil suatu instruksi sama dengan nol, kalau tidak bendera nol dipasang kembali pada logika nol. Bendera tanda dipasang apabila MSB dari hasil suatu instruksi adalah satu, kalau tidak bit tersebut direset.

Bendera paritas di reset apabila hasil instruksi adalah suatu bilangan yang paritasnya genap, kalau tidak ia di reset. Bendera carry dipasang bila suatu instruksi menghasilkan suatu carry (pindahan dari penjumlahan) atau suatu pinjaman (dari suatu pengurangan), kalau tidak bit tersebut di reset. Bit carry pembantu diset apabila suatu instruksi menghasilkan suatu carry (pindahan) dari bit 3 dan bit 4. Bendera ini digunakan dalam hitungan BCD.

2.4.3 Cara Pengalamatan ( Addresing Mode )

Satu ukuran keefektifan perangkat instruksi dari suatu mikroprosesor ditentukan oleh banyaknya modus pengalamatan (adderessing mode). Lokasi memori dalam suatu instruksi mikroprosesor dapat ditentukan dengan beberapa cara dan masing-masing cara ini adalah modus pengalamatan yang berbeda.

Cara yang paling mudah untuk menentukan alamat dalam suatu instruksi adalah memasukkan seluruh alamat 16-bit sebagai dua byte instruksi. Cara ini disebut pengalamatan langsung. Cara pengalamatan lain terjadi bila sebuah register penunjuk 16-bit (seperti HLO mengandung alamat dari lokasi memori yang diinginkan). Cara ini disebut pengalamatan register tak langsung. Suatu lokasi memori mungkin pula ditentukan dalam suatu instruksi relatif terhadap register indeks, dimana pergeseran dari register-indeks-alamat diberikan dalam instruksi. Cara ini disebut pengalamatan diindekskan. Suatu instruksi dapat pula menentukan lokasi memori terhadap lokasi instruksi itu sendiri dalam memori modus, ini disebut pengalamatan relatif. Kita dapat mengalamatkan pada data yang disimpan dalam register dalam mikroprosesor, ini disebut pengalamatan Cara yang paling mudah untuk menentukan alamat dalam suatu instruksi adalah memasukkan seluruh alamat 16-bit sebagai dua byte instruksi. Cara ini disebut pengalamatan langsung. Cara pengalamatan lain terjadi bila sebuah register penunjuk 16-bit (seperti HLO mengandung alamat dari lokasi memori yang diinginkan). Cara ini disebut pengalamatan register tak langsung. Suatu lokasi memori mungkin pula ditentukan dalam suatu instruksi relatif terhadap register indeks, dimana pergeseran dari register-indeks-alamat diberikan dalam instruksi. Cara ini disebut pengalamatan diindekskan. Suatu instruksi dapat pula menentukan lokasi memori terhadap lokasi instruksi itu sendiri dalam memori modus, ini disebut pengalamatan relatif. Kita dapat mengalamatkan pada data yang disimpan dalam register dalam mikroprosesor, ini disebut pengalamatan

Semua modus pengalamatan diatas, digunakan oleh berbagai instruksi dari mikroprosesor-mikroprosesor Z-80 dan 8748. Semua modus tersebut digunakan dalam mikroprosesor 8080, kecuali pengalamatan diindekskan dan pengalamatan relatif.

2.4.4 Operasi Penumpukan ( Stack )

Pada umumnya, informasi dapat disimpan dan dikeluaran dari RAM, dalam urutan yang sembarang. Akan tetapi, suatu cara yang khususnya sangat bermanfaat adalah mengatur informasi dalam memori sebagai “Last in first out” (LIFO) atau struktur penumpukan.informasi yang terakhir disimpan dalam memori penumpukan adalah yang pertama kali dikeluarkan. Apabila suatu informasi dilepaskan dari tumpukan, dikatakan bahwa informasi tersebut disembulkan (popped) dari memori.

Beberapa mikroprosesor mempunyai informasi didalamnya khusus digunakan untuk penumpukan informasi. Mikroprosesor-mikroprosesor yang lain menggunakan sebagian dari memori luar untuk penumpukan ini. Apabila memori diluar digunakan untuk penumpukan ini, sebuah register dari mikroprosesor yang disebut penunjuk penumpukan penyimpanan alamat yang paling atas dari tumpukan. Tumpukan biasanya disimpan terbalik didalam memori. Apabila data di dorong ke dalam tumpukan data tersebut disimpan dalam memori yang mempunyai memori semakin rendah. Akibatnya puncak dari tumpukan mempunyai alamat memori yang paling rendah.

Memori tumpukan biasanya dipakai untuk menyimpan informasi tentang keadaan mikroprosesor tepat sebelum terjadi pencabangan ke suatu subroutine. Informasi dapat dikeluarkan dari tumpukan dengan diselesaikannya subroutine untuk mengembalikan mikroprosesor pada keadaan tepat sebelum pencabangan ke subroutine.

Sebelum penulisan program-program mikroprosesor seperti Z-80 atau 8080 yang mempergunakan tumpukan, sangatlah penting bahwa nilai dari stack pointer dipasang oleh program mikroprosesor sebelum adanya operasi penumpukan. Memang mengisi petunjuk tumpukan (stack pointer) sebagai instruksi yang pertama dari program mikroprosesor adalah suatu kebiasaan yang baik dalam pembuatan program. Nilai dari register penunjuk penumpukan selanjutnya secara otomatis dikurangi setiap operasi penulisan penumpukan dan dinaikkan mengikuti setiap operasi pembacaan penumpukan.

2.4.5 Subroutine

Subroutine adalah suatu bagian dari program mikroprosesor yang merupakan pencabangan atau dapat dipanggil oleh bagian lain dari program tersebut. Subroutine dipanggil dalam instruksi call (panggil) yang diikuti dengan alamat permulaan dari subroutine. Suatu subroutine diakhiri dengan instruksi RET. Apabila suatu subroutine dipanggil, alamat dari instruksi berikutnya dari instruksi CALL di dorong ke dalam tumpukan sebagai alamat kembali. Instruksi RET menyebabkan alamat kembali disembulkan dari tumpukan dan dilanjutkan lagi. Perhatikan bahwa struktur LIFO dari penumpukan, memungkinkan Subroutine adalah suatu bagian dari program mikroprosesor yang merupakan pencabangan atau dapat dipanggil oleh bagian lain dari program tersebut. Subroutine dipanggil dalam instruksi call (panggil) yang diikuti dengan alamat permulaan dari subroutine. Suatu subroutine diakhiri dengan instruksi RET. Apabila suatu subroutine dipanggil, alamat dari instruksi berikutnya dari instruksi CALL di dorong ke dalam tumpukan sebagai alamat kembali. Instruksi RET menyebabkan alamat kembali disembulkan dari tumpukan dan dilanjutkan lagi. Perhatikan bahwa struktur LIFO dari penumpukan, memungkinkan

Untuk melukiskan operasi dari instruksi CALL akan dibahas perinciannya siklus demi siklus seperti yang telah dilakukan untuk instruksi-instruksi diatas. Sebagai ilustrasi, misalkan bahwa penumpukan disimpan diujung ruang memori 4K dan alamat dari subroutine yang dipanggil adalah 0002H. program yang berikut digunakan untuk mengisi register penunjuk tumpukan dan memanggil subroutine-subroutine (semua bilangan adalah heksadesimal) yang berikut :

ALAMAT MEMORI INSTRUKSI KETERANGAN

0000 31 Isi SP 0001 00 Byte rendah 0002 10 Byte tinggi 0003 CD Call (panggil) 0004 00 Byte rendah 0005 02 Byte tinggi

Perhatikan bahwa alamat kembali adalah 0006, oleh karena itu merupakan alamat dari instruksi berikut sesudah instruksi CALL. M1 digunakan untuk mengambil op-code instruksi. M2 dan M3 digunakan untuk membaca byte kedua dan ketiga dari instruksi yang memberikan alamat dari permulaan subroutine yang dipanggil M4 dam M5 digunakan untuk operasi menulis tumpukan untuk menyimpan alamat kembali dari tumpukan.

Tabel 2.3. Pelaksanaan dari Instruksi Panggil

T5 M1 Alamat = 0003

Pengkodean Instruksi M2 Alamat = 0004

Ready? Data = CD

Ready? Data = 00

M3 Alamat = 0005

Ready? Data = 02

M4 Alamat = 0FFF

Ready? Data = 00

M5 Alamat = 0FFE

Ready? Data = C6

M1 Alamat = 0200

Gambaran diatas menunjukkan pelaksanaan dari instruksi panggil memerlukan lima siklus alat dan tujuh belas keadaan alat. M1 adalah pengambil upkode. M2 dan M3 digunakan untuk membaca byte kedua dan byte ketiga (alamat subroutine). M4 dan M5 digunakan untuk mendorong alamat kembali keatas tumpukan. Setelah selesai instruksi call, operasi yang berikut adalah suatu siklus M1 pada permulaan dari subroutine.

Instruksi Restart (RST) serupa dengan instruksi CALL, hanya RST panjangnya hanya satu byte. Instruksi restart mempunyai bentuk yang umum 11ZYZ11 dan dapat menentukan satu dari delapan lokasi subroutine yang bergantung nilai-nilai ZY dan Z. Instruksi ini ekwivalen dengan instruksi call 3- byte yang berikut :

11001101 00XYZ000 00000000

Instruksi RST biasanya digunakan mengikiuti suatu interupsi untuk bercabang ke rutin pelayanan interupsi.

BAB III MIKROPROSESOR Z – 80

3.1 Sistem Minimal Mikroprosesor

Mikroprosesor pertama kali diperkenalkan pada tahun 1976. Dengan menggunakan proses pembuatan CMOS kanal – N, dengan menggunAkan beban tegangan ± 5 Volt. Sinyal tambahan yang ada pada mikroprosesor Z - 80 meniadakan keperluan untuk memultiplekskan informasi status pada bus data seperti yang ada pada 8080. Mikroprosesor Z - 80 dikemas dalam DIP (Dual In Package). Dengan 40 pin konfigurasi, seperti pada gambar 3.1.

3.1.1 Pin pada Z - 80

Z - 80 mempunyai 16 saluran alamat yaitu A0 - A15 yang dapat mengeluarkan alamat memori data masukan dan keluaran (I/O). Salauran ini bersifat tri-state, artinya ia mudah dibuat mengambang (float) oleh CPU. Dengan demikian bua alamat ini dapat dikontrol oleh logika dari luar, yang lazim disebut external logic.

Bus data 8 - bit, yaitu dari D0 - D7, mentransmisikan data secara dua arah (bidirectional), dari atau kedalam CPU. Saluran-saluran dasar ini juga bersifat tri- state, sehingga dapat dikontrol oleh external logic. Bus data Z - 80 dapat beroperasi pada level TTL normal.

Sinyal kontrol yang terdapat pada mikroprosesor Z - 80 dapat dibagi menjadi tiga kelompok, yaitu : Sinyal kontrol, CPU kontrol, dan bus kontrol. Sinyal-sinyal kontrol ada enam buah yaitu :

27 30 MI

A 0 19 31 MREQ

A 1 20 32 Sistem

IORQ A 2 Pengendali

21 33 RD

A 3 22 34 WR

A 4 28 35 RFSH

A 5 36 A 6 37 A 7 Bus 38 Alamat A 8 39 A 9 40 A 10 18 1 HALT

A 11 24 2

A 12 Pengendali

WAIT Z-80 CPU

16 3 CPU

INT A 13 17 4 NMI

A 14 26 5 RESET

A 15

25 14 Pengendali

BUSRQ D Bus CPU

23 15 BUSAK

D 1 12 D 2

D 3 Bus 6 7 Data

Gambar 3.1. Konfigurasi PIN Z-80 CPU Gambar 3.1. Konfigurasi PIN Z-80 CPU

: Menandakan suatu siklus perintah yang dibawa oleh prosesor dari suatu eksekusi instruksi.

b. MREQ : Menandakan pelaksanaan suatu operasi memori

sedang berlangsung.

c. IOREQ

: Menandakan suatu operasi masukan dan keluaran sedang berlangsung. Ketika IOREQ rendah, A0 – A6 berisi alamat I/O yang siap digunakan. IOREQ juga dapat berfungsi sebagai interrupt acknowledge, yaitu interrupt yang akan diketahui jika IOREQ dan M1 rendah.

d. WRITE

: Adalah sinyal tri-state yang menandakan bahwa CPU siap menulis data, baik ke memoi maupun ke media I/O.

e. READ

: Adalah sinyal tri-state yang menandakan bahwa CPU siap membaca baik dari memori maupun dari media I/O sebagaimana ditunjuk oleh MREQ dan IOREQ.

f. RFES

: adalah sebuah sinyal kontrol yang digunakan untuk menyegarkan (refresh) memori dinamik. Ketika RFES rendah, MREQ yang ada dapat digunakan untuk menyegarkan memori dinamik sebagaimana ditunjuk oleh alamat A0 - A6.

Sinyal kontrol untuk mengendalikan CPU ada lima buah, sedangkan masing-masing sinyal tersebut adalah : Sinyal kontrol untuk mengendalikan CPU ada lima buah, sedangkan masing-masing sinyal tersebut adalah :

Akan mengeluarkan sinyal aktif rendah apabila CPU Z - 80 mengeksekusi perintah HLT. Pada saat ini CPU berada pada keadaan HLT, yaitu terjadinya eksekusi perintah NOP (no opertation) berulang-ulang untuk mempertahankan kondisi-kondisi refresh memori dinamik. HLT hanya dapat dihentikan oleh sebuah instruksi biasa lainnya.

b. WAIT

Menyebabkan perpanjangan waktu pelaksanaan perintah, jika CPU berjalan terlalu cepat. Suatu memori atau perangkat I/O biasanya mempunyai instruksi (acess) tertentu. Jika waktu acessnya lebih lama dari periode clock CPU, maka kondisi WAIT ini harus dilaksanakan.

c. INT dan NMI

Merupakan masukan-masukan untuk melakukan inrerupsi. Perbedaannya adalah bahwa NMI memiliki prioritas lebih tinggi dan tidak dapat dimatikan oleh suatu instruksi.

d. RESET

Adalah sinyal kontrol bus yang melakukan beberapa hal, yaitu mengenolkan isi program counter, interup vector dan register R. Jika RESET sedang berjalan, maka permintaan inrerupsi melalui INT tidak akan dilayani dan semua sinyal tri-state dalam keadaan mengambang.

e. BURSQ dan BUSAK

Merupakan sinyal bus reques dan bus acknowlegdge. Untuk melakukan operasi DMA (Direct Memory Address), exrternal logic harus mengontrol Merupakan sinyal bus reques dan bus acknowlegdge. Untuk melakukan operasi DMA (Direct Memory Address), exrternal logic harus mengontrol

3.1.2 Register pada Z - 80

Mikroprosesor Z - 80 memiliki dua set register yang dapat diprogram dan dua buah program status word. Pada satu saat, hanya satu set programmable register dan satu program status word yang dapat diakses. Di dalam CPU Z - 80 terdapat sebuah program counter 16-bit,(IX dan IY), sebuah interrupt vector 8-bit, dan sebuah refresh memori 8-bit. Tabel 3.1.memperlihatkan pengorganisasian register-register tersebut.

Terdapat dua set progam status word dalam prosesor Z - 80 yaitu utama (F) dan pilihan (F’), beserta register-register A,B,C,D,E,H,dan L. suatu instruksi tunggal pada CPU Z - 80 dapat menukar penggunaan atau isi dari kedua register tersebut.

Tabel 3.1. Konfigurasi Register Z - 80

Accumulator

Flag

Accumulator

Flag

A F A’

F’

B C B’ C’

D E D’ E’

H’ L’

Int. Vektor

Ref. Vektor

I R INDEX REGISTER IX INDEX REGISTER IY STACK POINTER SP PROGRAM COUNTER PC

Pada saat hanya satu instruksi tunggal yang dapat diakses. Dua buah register yaitu IX dan IY, yang besarnya 16-bit digunakan sebagai base register. Instruksi-instruksi tunggal tersebut adalah EX (SP),HL,EX (SP),IX, EX (SP),HL, EX AF,AF’, EX DE, HL.

Program status word ini juga dikenal dengan register bendera (flag register). Register ini sangat berperan dalam operasi-operasi aritmatika, logika dan juga sebagai kondisi untuk syarat program (jump dan branch). Format dari program status word tersebut dapat digambarkan seperti pada tabel 3.2. dibawah. setelah operasi logika atau aritmatika selesai dilaksanakan, hasilnya akan disimpan di register A yang juga akan mempengaruhi kedudukan register bendera (register F).

Tabel 3.2. Format Program Status Word (Register Bendera)

P/V N C

Isi register juga dapat dipindahkan ke memori dengan instruksi khusus (PUSH instruksion). Tidak semua status dari register bendera ini sering digunakan dalam suatu operasi umum. Adapun status-status yang sering digunakan adalah sebagai berikut :

a. Carry flag

Carry flag digunakan untuk menguji apakah suatu operasi penjumlahan/ pengurangan menghasilkan carry/borrow. Selain itu, digunakan sebagai bit ke-19 bagi operasi instruksi Shiff dan Rotate. Carry flag juga dapat digunakan sabagai kondisi untuk instruksi jump, return, dan call.

b. Over flow/Parity flag

Merupakan dua buah flag yang mempunyai dua fungsi yang berbeda. Parity (P) = 0, bila jumlah bit benilai 1 (high) ganjil, dan P = 1, bila bila jumlah bit bernilai 1 (high) genap. Over flow digunakan untuk mendeteksi pada operasi penjumlahan/ pengurangan, apakah telah terjadi over flow setelah mencapai bilangan positif terbesar (+ 127) atau mengalami over flow setelah mencapai bilangan negatif terbesar (- 128). Over flow bernilai V = 1, bila terjadi over flow atau sebaliknya.

Tabel 3.3. Arti bit-bit dari program status

Bit Nama flag Logika Katerangan

0 Operasi tanpa carry

0 C : Carry

1 Operasi dengan carry

0 Operasi bukan subtract

1 N : Non carry

1 Operasi adalah subtract

0 Parity even tidak terjadi over flow

2 P/V : Parity/Over flow

1 Parity odd tidak terjadi over flow

3 Tidak digunkan

------------------------------------------

0 Tidak terjadi carry pada bit 4 register A

4 H : Half carry

1 Terjadi carry pada bit 4 register A

5 Tidak digunakan

----------------------------------------------

0 Hasil operasi bukan 0

6 Z : Zero

1 Hasil operasi 0

0 Hasil operasi plus

7 S : Sigh

1 Hasil operasi minus

c. Zero flag

Adalah flag yang menunjukkan apakah harga bit yang tengah dihitung atau sedang ditransfer adalah 0. Bila ‘ya’ maka nilai flag ini akan bernilai Z = 1. Selain itu juga sering dipakai untuk mendeteksi apakah nilai yang dibandingkan sama besarnya.

d. Sigh flag

Adalah flag yang mencerminkan nilai bit yang paling signifikan (bit 7). Setelah mikroprosesor melakukan suatu instruksi. Pada notasi two’s Adalah flag yang mencerminkan nilai bit yang paling signifikan (bit 7). Setelah mikroprosesor melakukan suatu instruksi. Pada notasi two’s

Dilihat dari segi pemprograman, mikroprosesor Z - 80 memiliki dua set register yang dapat diprogram dan dua buah program status word (PSW). Pada suatu saat, hanya dapat diprogram satu set register serta sebuah PSW. Selain itu, Z - 80 juga memiliki sebuah program counter 16-bit. Stack pointer 16-bit, dua buah indeks register, interrupt vector register 8-bit, dan refresh memori register 8-bit. Pada gambar 2.3. diatas diperlihatkan susunan register dari Z-80. Sedangkan kegunaan umum dari register-register tersebut adalah sebagai berikut :

a. Fungsi Umum dari Register-Register pada Z-80

1. Akumulator

Merupakan pusat dari pemproses data yang juga merupakan tempat salah satu operand dan tempat tujuan dari hasil operasi aritmatika, logika dan operasi lainnya.

2. Register HL

Merupakan register dari alamat memori utama. Beberapa instruksi seringkali merujuk pada data yang alamatnya ditunjuk oleh register ini, yang dilambangkan dengan HL.

3. Register DE

Pasangan register DE adalah merupakan register dari alamat memori sekunder. Pemrogram, dapat menukar isi register HL dengan menggunakan instruksi EX, DE ,HL.

4. Register B ,C dan BC

Register-register ini merupakan register serbaguna (multi purpose) yang fungsi utamanya adalah sebagai penghitung (counter) dan sebagai penyimpan data sementara. Register B sering digunakan sebagai penghitung loop, karena memiliki fungsi khusus pada instruksi DJNZ.

5. Register Index dan IY

Register index digunakan apabila pemprogram menunjuk alamat memori dengan suatu offset atau pemindahan yang tetap dari suatu referensi variable. Register ini dapat pula membantu register GHL jika pasangan register HL telah terisi.

b. Fungsi Khusus Register-Register pada Z-80

Fungsi-fungsi khusus yang dapat dilaksanakan oleh masing-masing register pada Z-80 adalah sebagai berikut:

1. Akumulator

Register ini adalah satu-satunya register yang dapat diisi dan dipindahkan isinya secara langsung melalui masukan dan keluaran port. Akumulator juga merupakan satu-satunya register yang isinya dapat digeser, dikomplement, diatur letak desimalnya, atau dinegasi dengan instruksi satu byte. Selain itu akumulator dapat diisi dan dipindahkan dari atau ke memori yang alamatnya ditunjuk pada pasangan register BC atau DE. Register ini juga merupakan tempat asal dan tujuan dari semua operasi aritmatika dan logika 8 bit, kecuali pada perintah DCE dan INC.

2. Register HL

Register ini dapat digunakan secara tidak langsung pada instruksi- instruksi ADC, ADD, AND, CMP, DEC, INC, OR, SUB, dan XOR. Register HL merupakan tempat dan tujuan bagi instruksi-instruksi ADD HL, ADC HL, dan SBC HL. Pasangan register ini dapat ditukar isinya dengan pasangan register DE atau dengan isi register stack teratas. Isi register HL dapat dipindahkan ke dalam stack pointer dengan instruksi LD SP, HL atau kedalam program counter dengan instruksi JP (HL). Register HL dapat juga digeser isinya dengn instruksi satu byte, yaitu dengan instruksi ADD HL. Pasangan register HL dengan otomatis akan digunakan sebagai register alamat asal dari data dalam operasi pemindahan blok, pembanding blok dan pengeluaran data satu blok.

3. Register DE

Pasangan register DE adalah merupakan satu-satunya pasangan register yang isinya dapat saling menggantiakn dengan isi register HL melalui perintah EX DE, HL. Register ini secara otomatis akan berfungsi sebagai register dari alamat tujuan operasi pada operasi pemindahan blok.

4. Register BC

Pasangan register BC secara otomatis akan berfungsi sebagai penghitung pada operasi pemindahan blok dan pembanding blok seperti pada instruksi CPIR atau LDIR.

5. Register B

Register B secara otomatis akan berfungsi sebagai penghitung pada

6. Register C

Register ini merupakan satu-satunya register yang dapat berfungsi sebagai alamat port pada operasi pemasukan dan pengeluaran data, yaitu dengan instruksi IN reg (C) atau OUT (C), reg.

7. Register Index IX dan IY

Register IX dan IY merupakan register yang berfungsi pada pengalamatan index (index addersing) dengan (IX + d). Artinya alamat memori ditunjuk oleh IX dan d, atau oleh IT dan d (d = displacent). Selain itu register IX dan IY juga berfungsi sebagai alamat asal data dan alamat hasil dari operasi ADD IX, rp atau ADD IY,rp dimana rp adalah pasangan register. Isi register IX dan IY dapat ditukar dengan isi stack teratas, dipindahkan ke dalam stack pointer atau program counter.

8. Stack pointer

Stack pointer secara otomatis akan bertambah satu jika terjadi operasi pengambilan data dari stack dan berkurang satu sebelum instruksi penyimpanan data ke stack dijalankan. Stack pointer adalah satu-satunya register alamat yang dapat digunakan untuk trasfer pasangan register lain dari atau kedalam memori melalui instruksi POP dan PUSH. Dapat pula mentransfer progam counter dari atau kedalam memori dengan menggunkan instruksi CALL dan RETURN.

9. Program Counter (PC)

Sebelum program dijalankan, program counter (register PC) harus mencatat alamat awal letak kode instruksi pertama suatu program. Secara otomatis bertahap satu persatu PC mencatat laju ke alamat berikutnya.

Selain diketahui fungsi-fungsi umum dan khusus dari setiap register dan pasangan-pasangan register yang terdapat dalam CPU Z-80, untuk dapat melakukan penyusunan suatu program maka perlu untuk mengetahui bahasa mesin dari Z-80 yang lazim dipakai pada kebanyakan mikroprosesor keluaran zilog inc.

3.2 PIO Z-80 ( Pararel Input Output Z-80 )

Sebuah chip Z-80 adalah sebuah perangkat antar muka yang dapat diprogram, mempunyai dua buah port yaitu port A dan port B, dalam satu serpih. Dibawah program kontrol, CPU Z-80 akan dapat memvariasi fungsi dari PIO Z-

80 secara luas, tanpa membutuhkan external logic tambahan. Pentransferan data dapat dilakukan dengan teknik interrupt controlled yang memungkinkan peralatan I/O luar (diluar sistem) menuntut pentransferan tersebut, sesuai dengan prioritas interrupt yang diberikan.

PIO Z-80 adalah sebuah generasi chip ketiga yang menggunakan kanal N, mode defleksi dengan teknologi gerbang silikon. PIO Z-80 membutuhkan sebuah PIO Z-80 adalah sebuah generasi chip ketiga yang menggunakan kanal N, mode defleksi dengan teknologi gerbang silikon. PIO Z-80 membutuhkan sebuah

0 beroperasi pada 0 0 C sampai 70

C. kedua portnya yaitu A port A dan port B dapat berdiri sendiri tanpa ada keterikatan satu dengan yang lainnya, namun port A mempunyai prioritas yang lebih tinggi jika digunakan secara bersama-sama.

3.2.1 Diagram Port Logic

Gambar 3.2. adalah sebuah diagram blok dari blok yang berlabel port A dan port B pada diagram blok PIO Z-80 secara umum pada gambar 3.2. diatas.

Mode Control

I/O select

logic

Register (8 bit)

Internal bus (8) Data/kontrol bus (8)

Data out.

Data in

Dari/ke

Hand shake

Ready

Control logic

INT signal Strobe

Gambar 3.2. Diagram Blok Port Logic dari PIO Z-80

Gambar ini memperlihatkan 6 buah register blok logic untuk kontrol handshake. Mode kontrol register adalah yang pertama dimuat oleh CPU dengan dua kode bit yang memilih satu dari empat mode yang ada (mode 0,1,2, dan 3). Kode ini akan mengadakan konfigurasi logika untuk mode operasi PIO Z-80 yang diinginkan. Register data output 3- bit menerima byte dari CPU dan mengirimnya keluar dari CPU Z-80 ke peralatan I/O lewat data/kontriol bus. Begitu juga register data input 8-bit menerima bit masukan dari peralatan I/O lewat data/kontrol bus, dan mengirinnya ke CPU lewat internal bus. Pentrasferan data antara CPU (ready and strobe) lewat handshake kontrol logic, agar data masuk dan keluar tidak saling bertabrakan. I/O select logisc hanya digunakan pada mode 3 (birt kobntrol mode). Register ini pertama akan dimuat oleh CPU dengan sebuah kontrol kata (word control). Kata ini akan menunjuk 8 garis dari data/bus kontrol I/O secara individual menjadi garis masukan atau garis keluaran. Begitu juga mask register 8-bit hanya digunakan pada mode 3 (bit control mode). Ini digunakan untuk sebuah ciri interrupt yang sangat khusus dari sistem Z-80. Kemudian register ini dimuat sebelumnya dengan sebuah kata dari CPU. Kata dalam register ini secara efektif akan menyembunyikan pemilihan pin-pin I/O dari bus/data kontrol I/O. 2 bit mask kontrol register, juga dimuat sebelumnya oleh CPU menentukan Gambar ini memperlihatkan 6 buah register blok logic untuk kontrol handshake. Mode kontrol register adalah yang pertama dimuat oleh CPU dengan dua kode bit yang memilih satu dari empat mode yang ada (mode 0,1,2, dan 3). Kode ini akan mengadakan konfigurasi logika untuk mode operasi PIO Z-80 yang diinginkan. Register data output 3- bit menerima byte dari CPU dan mengirimnya keluar dari CPU Z-80 ke peralatan I/O lewat data/kontriol bus. Begitu juga register data input 8-bit menerima bit masukan dari peralatan I/O lewat data/kontrol bus, dan mengirinnya ke CPU lewat internal bus. Pentrasferan data antara CPU (ready and strobe) lewat handshake kontrol logic, agar data masuk dan keluar tidak saling bertabrakan. I/O select logisc hanya digunakan pada mode 3 (birt kobntrol mode). Register ini pertama akan dimuat oleh CPU dengan sebuah kontrol kata (word control). Kata ini akan menunjuk 8 garis dari data/bus kontrol I/O secara individual menjadi garis masukan atau garis keluaran. Begitu juga mask register 8-bit hanya digunakan pada mode 3 (bit control mode). Ini digunakan untuk sebuah ciri interrupt yang sangat khusus dari sistem Z-80. Kemudian register ini dimuat sebelumnya dengan sebuah kata dari CPU. Kata dalam register ini secara efektif akan menyembunyikan pemilihan pin-pin I/O dari bus/data kontrol I/O. 2 bit mask kontrol register, juga dimuat sebelumnya oleh CPU menentukan

3.2.2 Penyusunan Interrupt Kontrol