Secara garis besar dapat dikatakan bahwa jumlah register dan jumlah instruksi
Z80 kira-kira dua kali Intel 8080/8085. Kumpulan instruksi Intel 8080 merupakan
suatu sub kumpulan dari kumpulan instruksi Z80, artinya Z80 memiliki semua
instruksi yang dimiliki Intel 8080, tetapi selain itu Z80 masih memiliki banyak
instruksi lain yang tidak dimiliki Intel 8080. mikroprosesor Z80 memiliki 158
instruksi dasar, sedangkan Intel 8080 hanya 78. Karena itu bisa dikatakan bahwa
Z80 upward compatible dengan Intel 8080.
2.
Chip tunggal. Dengan versi NMOS untuk solusi harga rendah kinerja tinggi,
sementara versi CMOS untuk rancangan kinerja tinggi berdaya rendah
3.
4.
5.
6.
7.
8.
9.
Kinerja jauh di atas mikroprosesor chip tunggal lain dalam aplikasi 4-, 8-,
atau 16-bit
10.
indeks,
sebuah
register
Refresh
(counter),
dan
sebuah
register interupsi.CPU Z80 juga sangat mudah disertakan pada sistem karena
hanya memerlukan sumber tegangan tunggal +5V. Semua sinyal output
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.
Register
Instruksi
(Instruction
Register),
merupakan
tempat
untuk
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.
2.3 Daftar Resgiter Mikroprosesor Zilog Z80
tiga
grup
register
di
dalam
CPU.
Grup
pertama
terdiri
atas
set
salinan/penggandaan register 8-bit: satu set prinsipal dan satu set alternatif
(yang ditunjukkan oleh (petik tunggal) seperti A). Kedua set terdiri dari register
Akumalator, register Flag, dan enam register serba-guna. Transfer data antara
Tabel 1
Pada dasarnya register-register CPU Z80 terbagi ke dalam dua jenis, yaitu:
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:
S : bendera tanda (sign flag) yang menyatakan hasil operasi
aritmatika. Bidang ini akan bernilai 1 jika MSB (most significant byte)
bernilai 1.
Z : bendera nol (zero flag). Bidang ini menyatakan hasil dari
sama
dengan
jika
operasi
sebelumnya
adalah
pengurangan
(subtract).
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.
non-maskable.
Interupsi
maskable,
INT#,
memiliki
tiga
mode
2.
3.
dengan
keluarga Z80
dan
divais
periferal
yang
sesuai
(kompatibel).
CPU melayani interupsi dengan men-sampling sinyal NMI# dan INT# pada sisi
menaik (raising edge) clock terakhir sebuah instruksi. Selanjutnya pemrosesan
layanan interupsi tergantung pada jenis interupsi yang dideteksi.
Interupsi Non-Maskable (NMI: Non-Maskable Interrupt). Interupsi NonMaskable tidak bisa dinon-aktifkan dengan kontrol program dan oleh karena itu
akan diterima di setiap waktu oleh CPU. NMI# biasanya dijadikan cadangan
hanya bagi layanan jenis interupsi berprioritas tertinggi, seperti untuk shutdown
setelah adanya gangguan daya yang terdeteksi. Setelah pengenalan sinyal NMI#
(penyediaan BUSREQ# tidak aktif), CPU melompat ke lokasi restart 0066H.
Normalnya, software mengawali pada alamat tersebut yang berisi rutin layanan
interupsi.
Interupsi Maskable (INT#). Dengan tanpa memperhatikan mode interupsi
yang diset oleh pengguna, CPU menanggapi masukan (input) interupsi maskable
menurut satu siklus pewaktuan umum. Setelah interupsi dideteksi oleh CPU
(dinyatakan bahwa interupsi diaktifkan dan BUSREQ# tidak aktif) satu siklus
pemrosesan interupsi khusus dimulai. Dimulai dengan siklus pengambilan
khusus
(M1#)
dimana
IORQ#
menjadi
aktif
sementara
MREQ#
tidak,
sebagaimana dalam siklus M1# normal. Sebagai tambahan, siklus M1# khusus
ini
secara
otomatis diperpanjang
sebanyak
dua keadaan
WAIT#,
untuk
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
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.
Pemuatan 8-bit
Pemuatan 16-bit
Lompatan
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)
Relatif (relative)
Perluasan (Extended)
Terindeks (Indexed)
Register
Tersirat (Implied)
Bit
Chip Pendukung
Mikroprosesor datang berserta seperangkat periferal pendukungnya yang dikenal
dengan
periferal
keluarga
Z80.
Periferal-periferal
yang
mendukung