2
Perkembangan Zilog Z80
3
Fitur Zilog Z80
·
Terdiri dari 158 instruksi dasar, termasuk
78 instruksi 8080A sebagai subsetnya (semuanya kompatibel). Instruksi baru
termasuk operasi 4-, 8- dan 16-bit denga mode pengalamatan lebih berguna
seperti pengalamatan terindeks, bit, dan pengalamatan relatif.
·
Chip tunggal. Dengan versi NMOS untuk solusi harga rendah
kinerja tinggi, sementara versi CMOS untuk rancangan kinerja tinggi berdaya
rendah
·
NMOS Z0840004 – 4 MHz; NMOS Z0840006 – 6,17 MHz; NMOS
Z0840008 – 8 MHz.
·
CMOS Z84C0006 – DC sampai 6,17 MHz; CMOS Z84C0008 – DC
sampai 8 MHz; CMOS Z84C0010 – DC sampai 10 MHz; CMOS Z84C0020 – DC sampai 20
MHz
·
Versi 6 MHz bisa beroperasi pada clock 6,144 MHz.
·
Mikroprosesor Z80 dan keluarga periferal Z80 bisa
dihubungkan dengan sebuah sistem interupsi tervektor. Sistem ini bisa
dihubungkan secara daisy-chain yang mengijinkan implementasi skema interupsi
terprioritas.
·
Penggandaan kumpulan (set) register serba-guna dan flag
·
17 register internal termasuk dua register indeks 16-bit
·
Tiga mode interupsi maskable
·
Mode 0 – sama dengan 8080A
·
Mode 1 – Lingkungan non-Z80, beralamat di 38H
·
Mode 2 – periferal keluarga Z80, interupsi tervektor
·
Pencacah refresh memori dinamis dalam chip
·
Antarmuka langsung dengan memori dinamis atau statis
kecepatan standar tanpa membutuhkan logika eksternal
·
Kinerja jauh di atas mikroprosesor chip tunggal lain dalam
aplikasi 4-, 8-, atau 16-bit
·
Semua pin kompatibel dengan level tegangan TTL (TTL
Compatible).
4
Bagian-bagian utama mikroprosesor
Z80 adalah:
·
ALU (Aritmatic and Logic Unit), bagian ini merupakan pusat
pengolahan data. Di bagian ini dilakukan operasi-operasi logika, seperti:
AND dan OR, serta operasi-perasi aritmatika, seperti: penjumlahan dan
pengurangan.
·
Larik Register (Registers Array), merupakan kumpulan
register-register yang terdiri dari register serba-guna dan register fungsi
khusus.
·
Register Instruksi (Instruction Register), merupakan tempat
untuk menyimpan sementara instruksi yang akan diterjemahkan oleh penerjemah
(decoder) instruksi.
·
Decoder (Penerjemah) Instruksi (Instruction Decoder),
merupakan bagian yang berfungsi dalam menerjemahkan instruksi yang diambil dari
memori setelah sebelumnya melewati register instruksi.
·
Kontrol Pewaktuan CPU (CPU Timing Control), bagian ini
berfungsi dalam mengendalikan kerja CPU secara keseluruhan dan juga pewaktuan
bagi periferal atau memori yang memiliki hubungan dengan CPU.
·
Antarmuka Bus Data (Data Bus Interface), bagian ini
merupakan pintu gerbang untuk keluar-masuk data dari dan ke CPU.
·
Penyangga dan Logika Alamat (Address Logic and Buffer),
bagian ini berfungsi dalam menyediakan alamat memori atau I/O yang diakses oleh
CPU.
·
Bus Data Internal (Internal Data Bus), di bagian ini lalu
lintas data dalam CPU berlangsung.
5
Register
Pada dasarnya register-register CPU Z80
terbagi ke dalam dua jenis, yaitu :
·
Register serba-guna (GPR:
General-purpose Registers)
·
Register Akumulator. Register ini
sangat penting peranannya dalam pengolahan data oleh ALU. Berbagai operasi
logika dan aritmatika menggunakan register ini untuk menyimpan salah satu
operan dan menyimpan hasil operasi yang telah dilakukan oleh ALU.
·
Register Bendera (flag). Register ini
merupakan status dari berbagai hasil operasi yang dilakukan ALU. Operasi logika
dan aritmatika yang dilakukan oleh ALU akan mempengaruhi sebagian atau seluruh
flag-flag yang ada dalam register flag ini. Register flag ini terdiri atas:
·
SF : bendera tanda (sign flag) yang
menyatakan hasil operasi aritmatika. Bidang ini akan bernilai 1 jika MSB (most
significant byte) bernilai 1.
·
ZF : bendera nol (zero flag). Bidang
ini menyatakan hasil dari operasi yang dilakukan ALU apakah menghasilkan nol
atau tidak. Bidang ini bernilai 1 jika hasil operasi ALU sama dengan nol.
·
HF : Bendera Pengambilan setengah
(half-carry). Bendera ini bernilai 1 jika operasi penambahan atau pengurangan
menghasilkan sebuah pengambilan ke dalam, atau meminjam dari bit 4 akumulator.
·
XF : Salinan hasil 3 bit.
·
PF : Bendera paritas atau oberflow.
Paritas (P) dan overflow berbagi bendera yang sama. Operasi logika
mengakibatkan bendera ini dengan paritas hasil sementara operasi aritmatika
mempengaruhi bendera ini dengan overflow dari hasil. Jika P/V memegang paritas:
P/V = 1 jika hasil operasi adalah genap; P/V = 0 jika hasilnya ganjil. Jika P/V
memegang overflow, P/V = 1 jika hasil operasi mengeluarkan sebuah overflow;
jika P/V tidak memegang overflow, P/V sama dengan 0.
·
NF : Bendera Tambah/Kurang
(Add/Subtract). Nilai bendera ini sama dengan 1 jika operasi sebelumnya adalah
pengurangan (subtract).
·
CF : Bendera Pengambilan/Sambungan
(carry/link). Bendera ini bernilai 1 jika operasi menghasilkan pengambilan
(carry) dari MSB operand atau hasil.
·
Register Serba-guna lainnya (B, C, D,
E, H, L).
·
Register fungsi khusus (SFR: Special
Function Registers)
·
Program Counter (PC), register ini
perfungsi sebagai pencacah alamat instruksi selanjutnya yang akan diambil dari
memori.
·
Stack Pointer (SP), register ini
menyimpan alamat atas (top) dari stack. Stack berfungsi sebagai penyimpanan
dalam memori yang sifatnya sementara bagi nilai-nilai (value) dari
register-register CPU ketika register tersebut akan dipakai. Stack digunakan
dengan perintah Push dan Pop.
·
Register Indeks (IX dan IY), register
ini digunakan untuk pengalamatan terindeks.
·
Register Interupsi (I), register ini
menyimpan alamat memori untuk vektor interupsi.
·
Register Refresh (R)
·
Flip-flop Status Interupsi (IFF) dan
Mode Interupsi (IMF).
6
Interupsi
CPU Z80 menerima dua sinyal input
interupsi : NMI dan INT. NMI adalah interupsi non-maskable dan memiliki
prioritas tertinggi. INT adalah interupsi berprioritas lebih rendah dan
diperlukan bahwa interupsi ini diaktifkan melalui software agar beroperasi. INT
bisa dihubungkan ke divais periferal bervariasi dalam konfigurasi terhubung OR.
Z80 memiliki sebuah mode tanggapan
tunggal bagi layanan interupsi pada interupsi non-maskable. Interupsi maskable,
INT, memiliki tiga mode tanggapan yang bisa diprogram yang tersedia. Mereka itu
adalah:
·
Mode 0 – sama dengan mikroprosesor 8080
·
Mode 1 – layanan interupsi periferal
untuk penggunaan dengan sistem bukan 8080/Z80
·
Mode 2 – skema interupsi tervektor,
biasanya di-daisy-chain, bagi pernggunaan dengan keluarga Z80 dan divais
periferal yang sesuai (kompatibel).
Operasi
Interupsi Mode 0.
Mode ini sama
dengan prosedur layanan interupsi mikroprosesor 8080. Devais yang menginterupsi
menempatkan sebuah instruksi pada bus data. Normalnya sebuah instruksi Restart,
yang memulai satu pemanggilan pada satu lokasi dari delapan lokasi restart yang
terpilih di halaman (page) memori nol. Tidak seperti 8080, CPU Z80 merespon
pada instruksi Call dengan hanya satu siklus pemberitahuan interupsi diikuti
dengan dua siklus baca memori.
Operasi
Interupsi Mode 1.
Operasi Mode 1
sangat sama dengan interupsi NMI. Secara prinsip perbedaannya hanya satu yaitu
interupsi Mode 1 restart (memulai kembali) pada alamat 0038H.
Operasi Interupsi Mode 2.
Mode interupsi ini telah dirancang untuk
penggunaan kemampuan yang sangat efektif dari mikroprosesor Z80 dan hubungannya
dengan keluarga periferalnya. Devais periferal yang menginterupsi memilih
alamat awal rutin layanan interupsi. Devais itu melakukannya dengan menempatkan
sebuah vektor 8-bit pada bus data selama siklus pemberitahuan interupsi. CPU
membentuk satu penunjuk (pointer) menggunakan byte ini sebagai 8-bit rendah dan
isi register I sebagai 8-bit tinggi. Penunjuk ini menunjukkan sebuah masukan (entry)
dalam tabel alamat bagi rutin layanan interupsi. CPU kemudian melompat ke rutin
pada alamat tersebut. Kefleksibelan dalam pemilihan alamat rutin layanan
interupsi ini mengijinkan divais perifera; menggunakan beberapa jenis rutin
layanan yang berbeda. Rutin-rutin tersebut mungkin ditempatkan pada suatu
alamat di memori yang tersedia. Karena devais yang menginterupsi
mensuplay byte orde rendah dari vektor 2-byte, bit 0 (A0) harus menjadi nol.
Operasi Enable/Disable Interupsi
(flop-flop).
Dua flip-flop IFF1 dan IFF2, ditunjukkan pada
gambaran (dekripsi) register, digunakan untuk memberikan tanda status interupsi
CPU. Operasi kedua flip-flop digambarkan pada Tabel dibawah.
7
Pengkakian
Konfigurasi pin mikroprosesor Z80.
Keterangan :
A0 – A15. Bus Alamat (keluaran,
aktif High, 3-state). A0 – A15 membentuk bus alamat 16-bit. Bus Alamat
menyediakan alamat bagi pertukaran bus data memori (sampai 64Kbyte) dan bagi
pertukaran divais I/O.
BUSACK. Pemberitahuan Bus (keluaran,
aktif Low). Pemberitahuan Bus menunjukkan pada divais yang meminta bahwa bus
alamat CPU, dan sinyal kontrol MREQ, IORQ, RD, dan WR telah memasuki
keadaan impedansi tinggi (high-impedance). Sirkuit eksternal sekarang bisa
mengontrol jalur-jalur tersebut.
BUSREQ. Permintaan Bus (masukan,
aktif Low). Permintaan Bus memiliki prioritas lebih tinggi dibandingkan dengan
NMI dan selalu dikenali di akhir siklus mesin yang sedang berjalan. BUSREQ
memaksa bus alamat CPU, bus data dan sinyal kontrol MREQ, IORQ, RD dan WR
menuju keadaan impedansi tinggi sehingga divais lain bisa mengontrol
jalur-jalur tersebut. BUSREQ normalnya terhubung OR (wired-OR) dan memerlukan
satu resistor pullup eksternal bagi aplikasi tersebut. Perluasan
periode BUSREQ karena operasi DMA yang luas bisa menjaga CPU dari penyegaran
(refreshing) RAM dinamis yang benar.
D0 – D7. Bus Data (masukan/keluaran,
aktif High, 3-state). D0 – D7 membuat sebuah bus data dua arah (bidirectional)
8-bit, yang digunakan untuk pertukaran data dengan memori dan I/O.
HALT. Keadaan Berhenti (Halt)
(output, aktif Low). HALT menunjukkan bahwa CPU telah mengeksekusi perintah
Halt dan sedang menunggu sebuah interupsi non-maskable atau maskable (dengan
mask aktif) sebelum operasi bisa dilanjutkan kembali. Ketika terhenti, CPU
mengeksekusi NOP untuk menjaga refresh memori.
INT. Permintaan Interupsi (masukan,
aktif Low). Permintaan Interupsi dihasilkan oleh divais I/O. CPU menerima
sebuah interupsi di akhir instruksi yang sedang berjalan jika flip-flop
pengaktif interupsi terkontrol software internal (IFF) diaktifkan. INT normalnya
dihubung OR dan memerlukan resistor pullup eksternal bagi aplikasi-aplikasi
tersebut.
IORQ. Permintaan Masukan/Keluaran
(keluaran, aktif Low, 3-state). IORQ menunjukkan bahwa setengah bus alamat
rendah memegang sebuah alamat I/O yang sah bagi sebuah operasi penulisan atau
pembacaan I/O. IORQ juga dihasilkan secara bersamaan dengan M1 selama sebuah
siklus pemberitahuan interupsi untuk menunjukkan bahwa sebuah vektor tanggapan
interupsi bisa ditempatkan pada bus data.
M1. Siklus Mesin (keluaran, aktif
Low). M1, bersama-sama dengan MREQ, menunjukkan bahwa siklus mesin yang sedang
berjalan adalah siklus pengambilan opcode dari sebuah eksekusi instruksi. M1,
bersama-sama dengan IORQ menunjukkan bahwa siklus pemberitahuan interupsi.
MREQ. Permintaan Memori (keluaran,
aktif Low, 3-state). MREQ menunjukkan bahwa bus alamat memegang alamat yang sah
bagi operasi pembacaan memori atau penulisan memori.
NMI. Interupsi Non-Maskable
(masukan, terpicu ujung negatif). NMI memiliki prioritas lebih tinggi
dibandingkan dengan INT. NMI selalu dikenali di akhir instruksi yang sedang
berjalan, tak tergantung dari status flipf-flop pengaktif interupsi (interrupt
enable flip-flop), dan secara otomatis memaksa CPU untuk memulai kembali pada
alamat 0066H.
RD. Baca (keluaran, aktif Low,
3-state). RD menunjukkan bahwa CPU ingin membaca data dari memori atau divais
I/O. Divais I/O atau memori yang dialamati akan menggunakan sinyal ini untuk
menempatkan data ke dalam bus data CPU.
RESET. Reset (masukan, aktif Low).
RESET mengawali CPU sebagai berikut: me-reset flip-flop pengaktif interupsi,
menghapus PC dan register I dan R, men-set status interupsi ke Mode 0. Selama waktu
reset, bus alamat dan data berkondisi impendansi tinggi, dan semua sinyal
keluaran kontrol menjadi tidak aktif. Catat bahwa RESET harus aktif minimal
selama tiga siklus clock penuh sebelum operasi reset lengkap.
RFSH. Refresh (keluaran, aktif
Low). RFSH, bersama-sama dengan MREQ menunjukkan tujuh bit bus
alamat sistem terendah bisa digunakan sebagai alamat penyegaran ke memori
dinamis sistem.
WAIT. Tunggu
(masukan, aktif Low). WAIT menunjukkan pada CPU bahwa memori atau divais I/O
yang dialamati tidak siap untuk sebuah pengiriman data. CPU selanjutnya
memasuki sebuah keadaan tunggu selama sinyal tersebut aktif. Perluasan periode
WAIT bisa menjaga CPU dari penyegaran memori dinamis yang benar.
WR. Tulis (keluaran, aktif Low,
3-state). WR menunjukkan bahwa bus data CPU memegang data yang sah untuk
disimpan pada lokasi memori atau I/O yang dialamati.
8
Instruksi
Mikroprosesor Z80 memiliki sekumpulan instruksi yang sangat
berdaya guna dan dan serba guna yang tersedia di beberapa mikroprosesor 8-bit.
Itu termasuk operasi yang khas (unik) seperti pemindahan blok untuk transfer
data yang cepat dan efisien dalam memori atau antara memori dan I/O. Itu juga
mengijinkan operasi beberapa bit di dalam beberapa lokasi di memori.
Instruksi-instruksi mikroprosesor
Zilog Z80 dibagi ke dalam kategori berikut ini:
·
Pemuatan 8-bit
·
Pemuatan 16-bit
·
Pertukaran, transfer blok dan pencarian
·
Operasi logika dan aritmatika 8-bit
·
Aritmatika serba-guna dan kontrol CPU
·
Perputaran (rotasi) dan pergeseran
(shift)
·
Operasi set, reset dan tes bit
·
Lompatan
·
Pemanggilan (call), kembali (return)
dan restart
·
Operasi masukan dan keluaran
Sejumlah mode pengalamatan yang beragam
diimplementasikan untuk mengijinkan transfer data yang cepat dan efisien antara
berbagai register, lokasi memori dan divais masukan/keluaran. Mode pengalamatan
yang disertakan:
·
Cepat (immediate)
·
Perluasan cepat (immediate extended)
·
Halaman nol termodifikasi (modified
page zero)
·
Relatif (relative)
·
Perluasan (Extended)
·
Terindeks (Indexed)
·
Register
·
Register tak langsung
·
Tersirat (Implied)
·
Bit
9
Chip Pendukung
Mikroprosesor dibuat berserta seperangkat periferal
pendukungnya yang dikenal dengan periferal keluarga Z80. Periferal-periferal
yang mendukung mikroprosesor Z80 di antaranya, yaitu:
·
Pengontrol Masukan/Keluaran Paralel (Z80 PIO: Parallel
Input/Output)
·
Pengontrol Masukan/Keluaran Serial (Z80 SIO: Serial
Input/Output)
·
Sirkuit Pewaktuan/Pencacah (Z80 CTC: Counter/Timer Circuit)
·
Pengontrol Akses Memori Langsung (Z80 DMA: Direct Memory
Access)
·
Pengirim/Penerima Tak-sinkron ganda (Z80 DART: Dual Asynchronous
Receiver/Trasmitter)
Mikroprosesor Z80 tidak hanya dapat berantarmuka dengan
periferal keluarga Z80 saja, namun bisa dihubungkan dengan periferal dari
keluarga mikroprosesor yang lain seperti periferal keluaran Intel. Karena kedua
mikroprosesor ini masih satu rumpun (keturunan).
10
Pemrograman
Pemrograman Mikroprosesor Z80 menggunakan bahasa
assembly yang memudahkan pengguna menuliskan dalam pengalamatan memori atau
format instruksi mesin. Menggunakan simbol dalam mengidentifikasi alamat lokasi
memori dan pemrograman. untuk menuliskan instruksi proses program
tertentu menggunakan simbol untuk mengidentifikasi langkah instruksi program
berikutnya.
Berikut sepintas tentang software assembler untuk
pemrograman Zilog Z80 (z80 simulator)
1.
Main Window
Main Window dari Z80 adalah jendela utama pada program
simulasi z80. untuk menjalankan program, kemudian memanggil Assembler Editor,
Simulation Log Viewer, Memory Editor dll.
Untuk mengisi program gunakan menu File, load program
Untuk Melakukan simulasi gunakan menu Simulation,Start (memulai)
atau Stop (menghentikan)
Untuk menghapus memori gunakan FILE, clear memory
Untuk memanggil Assembler gunakan menu Tools, Assembler
Untuk memanggil Simulation Log Viewer gunakan menu Tools, Simulation Log
Viewer.
2.
Assembler Editor
Assembeler Editor adalah editor yang kita gunakan untuk
menuliskan program. Setelah program ditulis dan disimpan, maka pada toolbar
Tools Assemble kita dapat melakukan compile untuk mengetahui apakah
terdapat error atau kesalahan sintaks pada program yang telah kita buat, jika
tidak, maka program yang telah kita buat diterjemahkan ke dalam bentuk Object
atau ekstensi .obj. bentuk objek inilah yang akan digunakan simulator untuk
melakukan simulasi.
Simpan hasil program anda agar dapat
digunakan kembali suatu saat. Jendela assembler juga menampilkan terjemahan
program ke dalam bentuk heksadesimal. Seperti gambar berikut.
3.
Simulation Log Viwer.
Simulation Log Viewer adalah
layar yang menampilkan proses register dan program counter setiap baris program
yang dieksekusi.
4.
Memory Editor.
Memory Editor menampilkan isi dari tiap-tiap alamat
mikropresosr Z8O pada memori dalam bahasa assembly.
untuk mengistal program ini di
Windows 7 Maka Anda harus menginstalnya di Luar local disk C Karena local disk
C terproteksi dengan sistem UAC Sehingga program ini membutuhkan administrator
account untuk menjalankannya, maka sebaiknya diinstall aja di disk D:
Kesimpulan
Mikroprosesor
Zilog Z80 merupakan mikroprosesor yang memiliki kemampuan untuk melakukan
penyegaran memori secara dinamis (dynamic memory refresh) secara otomatis.
Mikroprosesor
Zilog Z80 dibuat dengan menggunakan teknologi NMOS dan dikemas dalam sebuah DIP
(dual inline package) dengan 40 pin. Jumlah saluran alamatnya sama dengan 16,
dan jumlah saluran datanya delapan. Saluran-saluran ini tidak di-multiplexed .
Mikroprosesor Z80 sudah memiliki penghasil detak (clock) sendiri dan hanya
memerlukan satu tegangan catu +5 volt.
Arsitektur
Mikroprosesor Zilog Z80 menggunakan register versi 8/16
bit. Menggunakan tiga mode interupsi maskable yaitu Mode 0 – sama dengan
8080A, Mode 1 – Lingkungan non-Z80, beralamat di 38H, dan Mode 2 – periferal
keluarga Z80, interupsi tervektor.
Mikroprosesor
Z80 dapat berantarmuka dengan periferal keluarga Z80 serta dapat dihubungkan
dengan periferal dari keluarga mikroprosesor yang lain seperti periferal
keluaran Intel.
0 komentar: