KD 3.1. Arsitektur Mikroprosesor Zilog Z80 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Arsitektur Mikroprosesor Zilog Z80 CPU Z80 adalah mikroprosesor generasi keempat yang ditingkatkan tak terkecuali



untuk



kebutuhan



daya



komputasi.



Mikroprosesor



ini



menawarkan throughput sistem yang lebih tinggi dan penggunaan memori yang efisien dibandingkan dengan mikroprosesor yang sama pada generasi kedua dan ketiga. Register internalnya terdiri dari 208-bit memori baca/tulis yang bisa diakses oleh programmer. Register-register tersebut termasuk dua set enam register serba-guna yang bisa digunakan secara sendiri-sendiri (individual) sebagai register 8-bit atau sebagai pasangan register 16-bit. Sebagai tambahan, ada dua set register lagi, yaitu akumulator dan register bendera (flag). Grup perintah "Exchange" membuat set register utama atau register alternatif bisa diakses oleh programmer. Set alternatif mengijinkan operasi dalam mode nampaktersembunyi



(foreground-background)



atau



bisa



cadangan bagi tanggapan interupsi sangat cepat.



Gambar Blok Diagram Zilog Z80



digunakan



sebagai



Gambar Blok Diagram Zilog Z80



Penjelasan Diagram Blog Zilog Z80 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 peripheral 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.



Tabel Register-register internal mikroprosesor Zilog Z80 Tabel diatas memperlihatkan 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 set register salinan tersebut dipenuhi dengan instruksi pertukaran. Hasilnya tanggapan yang lebih cepat untuk interupsi dan implementasi efisien, mudah dari teknik pemrograman serba guna sebagai pemrosesan data nampak-tersembunyi (background-foreground). Set register kedua terdiri atas enam register dengan fungsi-fungsi khusus. Register-register tersebut adalah I (register interupsi), R (register refresh), IX dan IY (register indeks), SP (Stack Pointer) dan PC (Program Counter). Grup ketiga terdiri atas dua flip-flop status interupsi ditambah satu pasang flip-flop yang membantu dalam indentifikasi



mode



interupsi



di



waktu



tertentu.



memperlihatkan informasi register-register tersebut.



Tabel



diatas



CPU Z80 / CPU Register juga tersusun atas sebuah Stack Pointer, Program Counter, dua buah register 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 sepenuhnya di-decode dan di-time untuk mengontrol sirkuit memori atau peripheral standar. CPU Z80 didukung oleh perluasan keluarga pengontrol peripheral.



Register



Ukuran



Keterangan



A, A'



Akumulator



8-bit



Menyimpan sebuah operand atau hasil sebuah operasi



F, F'



Flag



8-bit



menyimpan flag atau tanda dari operasi yang dilakukan ALU



B, B'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan C



C, C'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan B



D, D'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan E



E, E'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan D



H, H'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan L



L, L'



Serbaguna



8-bit



Bisa digunakan tersendiri atau sebagai register 16-bit dengan H



I



Register interupsi



8-bit



Menyimpan delapan bit alamat memori untuk pemrosesan interupsi tervektor Menyediakan refresh memori dinamis yang tak terlihat oleh pengguna. Secara otomatis di-increment dan ditempatkan pada saluran alamat selama tiap siklus pengambilan instruksi



R



Register refresh



8-bit



IX



Register indeks



16-bit



Digunakan dalam pengalamatan terindeks



IY



Register indeks



16-bit



Digunakan dalam pengalamatan terindeks



SP



Penunjuk Stack



16-bit



Memegang alamat atas stack. Lihat instruksi Push atau Pop



PC



Pencacah Program



16-bit



Memegang alamat instruksi selanjutnya



IFF1 IFF2



Enable Interupsi



8-bit



Set atau reset untuk menunjukkan status interupsi



IMFa – IMFb



Mode Interupsi



8-bit



Menggambarkan mode interupsi



Special Purpose Register Program Counter ( PC ) Program Counter (PC) bertugas ‘memegang’ 16-bit alamat setiap saat ketika CPU sedang melakukan proses fetch data dari memori. PC secara otomatis akan bertambah dengan 1 bila sebuah proses fetch data telah selesai. PC juga akan berubah bila program melakukan jump ke lokasi tertentu. PC akan mengikuti alamat dimana proses jump menuju. ( PC akan selalu bertambah apabila proses pentransferan data selesai dan apabila program melakukan jump / lompatan ke instruksi berikutnya dan tidak akan pernah berhenti ).



Stack pointer ( SP ) Stack Pointer (SP) bertugas memegang 16-bit alamat paling atas dari memori external (system RAM) pada setiap saat ketika program sedang berjalan. External Stack memori ini tersusun dengan sistem LIFO (Last-In-First-Out).



Data di-push up dari suatu register CPU ke stack atau di-pop dari stack ke suatu register.



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.



Two Index Register ( IX and IY ) Kata index sebagai penunjuk dimana Dua Index Register (IX & IY) bertugas



menahan



16-bit



alamat



yang



digunakan



dalam



indexed



addressing modes dalam pemrograman / mode dalam pengalamatan terindexed.



Dalam



hal



ini



isi



index



Register



digunakan



untuk



menghubungkanke CPU, CPU juga mengikuti suatu register memori tertentu dimana data disimpan atau diambil.



Interrupt Page Addres Register ( I ) Interrrupt Page Address Register (I). Z80 dapat dioperasikan dalam mode tertentu dimana suatu hubungan tak langsung ke memori dapat dicapai dengan memberikan suatu respons interrupt. Pada operasi ini register I dipakai untuk menyimpan high order 8-bit dari alamat yang akan dituju, sedangkan low order 8-bit akan diberikan oleh peranti yang melakukan interrupt



itu.



Dengan



keunggulannya,



sub



rutin



interrupt



dapat



ditempatkan dimana saja sesuai dengan bentuk program yang diinginkan dengan waktu yang seminimal mungkin.rima dua sinyal input interupsi: NMI# dan INT#. NMI# adalah interupsi non-maskable dan memiliki 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). 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 Non-Maskable 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 mengijinkan bagi waktu yang diperlukan dalam pemberitahuan permintaan interupsi.



Operasi Interupsi Mode 0. Mode ini sama dengan prosedur layanan interupsi mikroprosesor 8080. Divais 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.



Divais



periferal



yang



menginterupsi memilih alamat awal rutin layanan interupsi. Divais 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 divais yang menginterupsi mensuplay byte orde rendah dari vektor 2-byte, bit 0 (A0) harus menjadi nol. Operasi Pengaktif/Penon-aktif (Enable/Disable) Interupsi. 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 2.



Tabel 2 Kondisi flip-flop



Aksi



IFF1 IFF2 Komentar Disable interupsi maskable 0 0 INT# Disable interupsi maskable 0 0 INT# 1 1 Enable interupsi maskable INT# 0 0 IFF2 => flag Paritas 0 0 IFF2 => flag Paritas Disable interupsi maskable 0 0 INT# IFF2 => IFF1 sebagai pelengkap IFF2 0 sebuah rutin layanan NMI#



Reset CPU Eksekusi instruksi DI Eksekusi instruksi EI Eksekusi instruksi LD A, t Eksekusi instruksi LD A, R Menerima NMI# Eksekusi instruksi RETN



Memory Refresh Register ( R ) Memory Refresh Register (R) pada Z80 memiliki sebuah memori refresh counter sehingga memungkinkan bagi Z80 untuk dirangkai dengan dynamic memory bersama-sama dengan static memory.



Accumulator and Flag Registers Z80 memiliki dua buah memori register bebas dengan nama khusus yaitu accumulator



dan



flag



register,



masing-masing



terdiri



dari



8-bit.



Accumulator (A) adalah register yang memiliki kemampuan khusus dalam opersi aritmatika dan logika. Bisa dilihat dari instruksi-instruksi dari assembly Language Z80 maka operasi-operasi aritmatika dan logika selalu melibatkan accumulator A. Bisa dibandingkan dengan registerregister yang lain maka accumulator ini paling sering digunakan oleh programmer. Flag registras



digunakan untuk menunjukkan kondisi



khusus pada operasi-operasi data 8-bit maupun 16-bit di accumulator A menghasilkan nol (zero) atau tidak. Accumulator dan flag register



merupakan pasangan register yang sering digunakan bersama untuk operasi aritmatika dan logika. 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: 7



6



5



4



3



2



1



0



S



Z



-



H



-



P/V



N



C



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 operasi yang dilakukan ALU apakah menghasilkan nol atau tidak. Bidang ini bernilai 1 jika hasil operasi ALU sama dengan nol. H : 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. P/V : Bendera paritas atau overflow. 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. N : Bendera Tambah/Kurang (Add/Subtract). Nilai bendera ini sama dengan 1 jika operasi sebelumnya adalah pengurangan (subtract). C : Bendera Pengambilan/Sambungan (carry/link). Bendera ini bernilai 1 jika operasi menghasilkan pengambilan (carry) dari MSB



operand atau hasil. Flag register mangandung 6-bit informasi status CPU Z80 yang dapat dites dan diset atau di-reset melalui instruksi-instruksi dalam program. Bit 3 dan bit 5 tidak digunakan. 4 dan 6 bit yang digunakan bersifat testable. Dengan conditional jump, call atau return, 4 bit (C,P/V, Z dan S ) tersebut dapat diketahui statusnya. Dua bit sisanya tidak bersifat sestable dan hanya digunakan pada operasi aritmatik BCD. 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.



General Purpose Registers



Z80 memiliki register-register yang dapat sewaktu-waktu dipakai untuk menyimpan memori di dalam program, sehingga register-register Z80 serba guna (General Purpose Register). Register-reregister tersebut adalah B, C, D, E, H dan L yang masing-masing memiliki register komplemen tertentu. Tiap register memiliki struktur 8-bit. Bila diperlukan register 16-bit maka dapat disusun sebagai register-register BC, DE dan HL. Komplemennya adadlah BC’, DE’ dan HL’.



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.



( bisa dilihat di



foto copy an ) 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. Setiap instruksi yang diambil dari memori selalu ditempatkan di register instruksi untuk kemudian didekode ( dijabarkan maksudnya sesuai dengan bahasa Assembly Z80). Setelah di decode, bagian control CPU akan menjalankan perintah sesuai dengan tugas menghasilkan sinyal-sinyal control read/write, sinyal control untuk mengatur ALU dan sinyal control lain untuk mengatur rangkaian-rangkaian luar.



Kendali CPU menjalankan fungsi-fungsi sebagai berikut: M1* (Machin Cycle One: satu siklus mesin) / Siklus Mesin (keluaran, aktif Low). merupakan pin keluaran aktif rendah jika CPU sedang mengambil sandi operasi instruksi dari memori. Pada saat ini bus alamat berisi alamat memori seperti data yang ada pada Register



PC, dan data bus mengarah masuk. ). 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* (Memori Request: pesan memori)/ Permintaan Memori (keluaran, aktif Low, 3-state). merupakan pin Keluaran aktif rendah pada waktu saluran alamat berisi alamat memori.



IORQ*



(Input



Output



Request:



pesan



Input



Output)



/



Permintaan Masukan/Keluaran (keluaran, aktif Low, 3-state). Keluaran aktif rendah pada waktu saluran alamat A0 s/d A7 berisi alamat I/O. 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. RD* (Read: Baca) Keluaran aktif rendah pada waktu CPU melakukan operasi baca/memasukkan data, 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. WR* (Write: Tulis) Keluaran aktif rendah pada waktu CPU melakukan operasi tulis/mengeluarkan data, WR# menunjukkan bahwa bus data CPU memegang data yang sah untuk disimpan pada lokasi memori atau I/O yang dialamati. RFSH* (Refresh: Penyegaran) Keluaran aktif rendah jika CPU mengeluarkan alamat memori untuk menyegarkan memori mekanik. RFSH#, bersama-sama dengan MREQ# menunjukkan tujuh bit bus



alamat sistem terendah bisa digunakan sebagai alamat penyegaran ke memori dinamis sistem. HALT*. Keadaan Berhenti (Halt) (output, aktif Low), Keluaran aktif rendah pada saat CPU melaksanakan instruksi Halt /berhenti, ). 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 WAIT* Tunggu (masukan, aktif Low). Masukan dibuat aktif rendah oleh alat luar yang menyela kerja CPU, 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. INT* (Interrupt: interupsi) / Permintaan Interupsi (masukan, aktif Low).



Masukan aktif rendah jika ada luar yang meminta layanan interupsi,



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 aplikasiaplikasi tersebut. NMI*



(Non



Mascable



Interrupt:



interupsi



yang



tidak



bisa



dihalang) Masukan aktif rendah jika ada selaan yang yang tak dapat dihalangi, 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. RESET* Masukan dibuat aktif rendah oleh alat luar untuk membuat



CPU ada dalam keadaan awal, ). 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. BUSRQ*



(Buss



Request:



pesan



bus)/



Permintaan



Bus



(masukan, aktif Low). Sinyal masukan yang dibuat aktif rendah jika ada alat luar yang meminjam bus sistem, 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.



BUSAK* (Bus Akcnowledge)/ Pemberitahuan Bus (keluaran, aktif



Low).



Keluaran



aktif



rendah



yang



menandakana



CPU



mengijinkan peminjaman bus sistem. 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.



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.



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.



Z-80 CPU dalam menggendalikan sistem menggunakan enam pin kendali dan empat diantaranya digunakan untuk berkomunikasi dengan Memori dan I/O. Cara berkomunikasinya menggunakan status bit seperti tabel berikut: Tabel Operasi Komunikasi Memori