MIKROPROCESSOR 8085

MIKROPROCESSOR 8085



Intel 8085 merupakan mikroprosesor kelanjutan dari mikroprosesor sebelumnya yang sangat sukses di pasaran, yaitu mikroprosesor Intel 8080A. Diberikan nama 8085 karena mikroprosesor ini merupakan mikroprosesor pertama Intel yang hanya memerlukan tegangan 5 volt. Mikroprosesor 8085 100% sesuai secara software dengan mikroprosesor 8080A dengan peningkatan kinerja sistem. Mikroprosesor 8085 awal dibuat berdasarkan teknologi NMOS dan kemudian versi “H” yang berdasarkan pada teknologi HMOS.
Mikroprosesor 8085 menyertakan semua fitur chip 8224 sebagai pembangkit clock dan chip 8228 sebagai pengontrol sistem sehingga meningkatkan level penyatuan sistem. Mikroprosesor 8085 jika disatukan dengan chip RAM 8156 dan ROM/PROM 8355/8755 akan menjadikannya sebuah sistem yang lengkap. Mikroprosesor 8085 menggunakanBus Data termultipleks dan membutuhkan dukungan chip 825X-5. Alamat terbagi dua menjadi bus alamat 8-bit dan bus data 8-bit. Pengunci alamat dalam chip dari chip memori 8155/8355/8755 menjadikannya dapat langsung berhubungan dngan mikroprosesor 8085.
Keluarga mikroprosesor 8085 juga dikenal sebagai MCS-85.
Dengan demikian ada beberapa poin yang menjadi mikroprosesor Intel 8085 lebih baik dari mikroprosesor Intel 8080, yaitu sebagai berikut:
  • Intel 8085 hanya mengharuskan diberi pasokan daya tunggal 5V.
  • Dalam prosesor sudah terintegrasi oscillator dan pengontrol sistem clock.
  • Port I/O serial.
  • Instruksi baru, kebanyakan instruksi tersebut tidak terdokumentasikan.
  • Jumlah tansistor menjadi 6.500 dengan proses 3 mikron.
  • Kecepatan clock meningkat mnenjadi 3 MHz.
Ada berbagai versi mikroprosesor 8085. Versi mikroprosesor 8085 yang asli tanpa penambahan huruf  “A” yang hanya dibuat/difabrikasi oleh Intel, dan dengan cepat digantikan oleh 8085A yang mengandung bug tetap. Beberapa tahun kemudian, sekitar tahun 1980, Intel memperkenalkan 8085AH – versi 8085A dengan proses produksi HMOS. Versi ini tidak terlalu jelas jika dengan versi 80C85, versi CMOS dari 8085A, yang tidak pernah difabrikasi oleh Intel, tapi versi CMOS itu diproduksi setidaknya oleh dua pabrikan lainnya, yaitu OKI dan Tundra Semiconductor. Tundra Semiconductor juga membuat mikroprosesor 8085 tercepat yang berjalan pada 8 MHz.
Description: https://ciburuan.files.wordpress.com/2012/09/chip-8085.jpg?w=700
Pict : Mikroprosesor Intel 8085
Pabrik pembuat tiruan Intel 8085 diantaranya: AMD, Mitsubishi, NEC, OKI, Siemens, Toshiba. Pabrikan di Uni Soviet juga membuat tiruan CPU Intel 8085.
Mikroprosesor Intel 8085 digunakan pada komputer Radio Shack TRS-80 Model 100 dan 200 serta pada CompuPro 8/16.
Arsitektur Intel 8085
Memori
Memori program, data dan stack menempati ruang memori yang sama. Ukuran memori keseluruhan yang dapat dialamati adalah 64 KB.
  • Memori program – program bisa berlokasi dimanapun dalam memori. Instruksi lompatan, pencabangan dan pemanggilan menggunakan alamat 16-bit, dimana instruksi-instruksi tersebut dapat digunakan untuk melompat/bercabang ke manapun dalam lokasi memori 64 KB. Semua instruksi lompatan/pencabangan menggunakan pengalamatan absulot.
  • Memori data – prosesor selalu menggunakan alamat 16-bit sehingga data dapat ditempatkan dimana saja.
  • Memori stack hanya dibatasi oleh ukuran memori.Stack tumbuh ke arah bawah.
64 byte pertama dari halaman memori nol hendaknya dicadangkan sebagai vektor yang akan digunakan oleh instruksi RST.
Interupsi
Prosesor memiliki 5 interupsi. Interupsi-interupsi tersebut dijelaskan di bawah ini sesuai dengan prioritasnya (dari prioritas terendah ke prioritas tertinggi):
INTR adalah jenis interupsi yang sesuai dengan interupsi maskable 8080A. Ketika terjadi interupsi, prosesor mengambil satu buah instruksi dari bus yang biasanya merupakan salah satu dari instruksi berikut ini:
  • Sebuah instruksi 8 RST (RST0 – RST7). Prosesor menyimpan pencacah program yang sedang dijalankan ke dalan stack dan mengambil lokasi memori N * 8 (dimana N adalah nomor 3-bit dari 0 sampai 7 yang diisi dengan instruksi RST).
  • Instruksi CALL (instruksi 3 byte). Prosesor memanggil subrutin yang memiliki alamat yang disebutkan pada byte kedua dan ketiga instruksi.
RST5.5 adalah interupsi maskable. Ketika interupsi diterima prosesor menyimpan isi register PC ke dalam stack dan mengambil alamat 2Ch (hexadecimal).
RST6.5 adalah interupsi maskable. Ketika interupsi diterima prosesor menyimpan isi register PC ke dalam stack dan berpindah ke alamat 34h (hexadecimal).
RST7.5 adalah interupsi maskable. Ketika interupsi diterima prosesor menyimpan isi register PC ke dalam stack dan berpindah ke alamat 3Ch (hexadecimal).
Trap adalah interupsi non-maskable. Ketika interupsi diterima prosesor menyimpan isi register PC ke dalam stack dan berpindah ke alamat 24h (hexadecimal).
Semua interupsi bis diaktifkan atau dinonaktifkan menggunakan instruksi EI dan DI. Interupsi RST 5.5, RST6.5 dan RST7.5 bisa diaktifkan atau dinonaktifkan masing-masing menggunakan instruksi SIM.
Port I/O
  • 256 port input
  • 256 port output
Register
Akumulator atau register A merupakan sebuah register 8-bit yang digunakan dalam operasi aritmatika, logka, I/O dan operasi muat/simpan (load/store).
Flag adalah sebuah register 8-bit yang terdiri atas 5 flag 1-bit:
  • Tanda (Sign) – di-set jika bit tertinggi hasil di-set.
  • Nol (Zero) – di-set jika hasilnya nol.
  • Auxiliary carry – di-set jika ada pengambilan dari bit 3 sampai bit 4 dari hasil.
  • Parity – di-set jika paritas (jumlah set bit dalam hasil) genap.
  • Carry – di-set jika terjadi pengambilan selama penambahan atau peminjaman selama pengurangan/perbandingan.
Register Umum
Register B 8-bit dan C 8-bit bisa digunakan sebagai pasangan register BC 16-bit. Ketika digunakan sebagai pasangan register C berisi byte rendah. Beberapa instruksi menggunakan register BC sebagai penunjuk data.
Register D 8-bit dan E 8-bit bisa digunakan sebagai pasangan register DE bit. Ketika digunakan sebagai pasangan register E berisi byte orde rendah. Beberapa instruksi menggunakan pasangan register DE sebagai penunjuk data.
Register H 8-bit dan L 8-bit bisa digunakan sebagai pasangan register HL 16-bit. Ketika digunakan sebagai pasangan register L berisi byte orrde rendah. Register HL biasanya berisi penunjuk data ke alamat memori referensi.
Stack pointer adalah register 16 bit. Register ini selalu ditambah atau dikurangi dengan 2.
Pencacah Program merupakan register 16-bit.
Kumpulan Instruksi
Kumpulan instruksi mikroprosesor Intel 8085 terdiri atas instruksi-instruksi berikut ini:
  • Instruksi pemindahan data.
  • Aritmatika – tambah, kurangi, naikkan 1 dan turunkan 1.
  • Logika – AND, OR, XOR dan putar.
  • Transfer kontrol – conditional, unconditional, pemanggilan subrutin, kembali dari subroutine dan restart.
  • Instruksi Input/Output.
  • Lainnya – pengesetsan/penghapusan bit flag, pengaktifan/penonaktifan interupsi, operasi stack, dan lain sebagainya.
Mode Pengalamatan
  • Register – menunjukkan data di dalam register atau pasangan register.
  • Register tidak langsung – instruksi menyebutkan pasangan register yang berisi alamat dimana data ditempatkan.
  • Langsung.
  • Cepat – 8 atau 16-bit data.
Chip Pendukung
Selain mengeluarkan chip mikroprosesor, Intel juga membuat chip-chip pendukung yang digunakan untuk membangun sistem mikrokomputer yang lengkap. Chip-chip pendukung tersebut adalah:
  • 8155 (2048-bit MOS RAM statis dengan I/O Port dan Timer, CE aktif rendah),
  • 8156 (sama dengan 8155, tapi memiliki CE dengan aktif tinggi),
  • 8355 (16.384-bit ROM dengan I/O),
  • 8755 (16.384-bit EPROM dengan I/O),
  • 8251A (Programmable Communications Interface),
  • 8253-5 (Programmable Interval Timer),
  • 8255-5 (Programmable Peripheral Interface),
  • 8257-5 (DMA Controller),
  • 8259-5 (Interrupt Controller),
  • 8279-5 (Keyboard/Display Interface)




2.     ARSITEKTUR MIKROPROCESSOR 8086

8086 merupakan sebuah chip mikroprosesor 16-bit rancangan Intel pada tahun 1978 yang membangkitkan penggunaan arsitektur x86. Tidak lama kemudian, Intel 8088 diperkenalkan dengan bus 8-bit external, yang memungkinkan penggunaan chipset yang murah.
8086 dirancang berdasarkan Intel 8080 dan Intel 8085 dengan set register yang mirip, tetapi dikembangkan menjadi 16 bit. "Bus Interface Unit" memberikan rangkaian instruksi ke "Execution Unit" melalui sebuah prefetch queue 6 byte, jadi pemberian dan pelaksanaan dilakukan bersamaan- sebuah bentuk pipelining primitif (instruksi 8086 bervariasi dari 1 sampai 4 byte).

Bus Interface Unit
BIU menyediakan fungsi-fungsi perangkat keras, termasuk pembangkitan memori dan alamat I/O untuk transfer data. BIU berfungsi mengirim kode-kode alamat keluar, mengambil instruksi dari memori serta membaca data dari port dan memori.
  1. Bus Interface Unit (BIU) : Register Antrian
Pada saat EU mendekode atau melaksanakan suatu instruksi, ia tidak perlu menggunakan bus sehingga dapat digunakan oleh BIU untuk mengambil 6 byte instruksi sebagai instruksi berikutnya yang akan dilaksanakan.Instruksi-instruksi tersebut dinamakan prefetched instruction dan oleh BIU disimpan dalam register FIFO (First-In First-Out) yang juga disebut register antrian.Ketika EU siap melaksanakan instruksi berikutnya, ia dengan mudah membaca instruksi-instruksi dari register antrian dalam BIU. Jadi, ketika EU sedang melaksanakan suatu instruksi, bus dapat digunakan oleh BIU untuk menulis dan membaca memori serta mengambil instruksi berikutnya. Teknologi yang memungkinkan pengambilan instruksi berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining.
  • Bus Interface Unit (BIU) : Register Segmen
8086 mampu mengalamati 220 lokasi memori, sedangkan panjang register IP yang dimilikinya hanya 16-bit. Untuk memperoleh 20-bit sinyal alamat, 8086 menggunakan bantuan register segmen. Gabungan antara register segmen 16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat. 8086 memiliki 4 buah register segmen yakni CS (Code Segment), SS (Stack Segment), ES (Extra Segment) dan DS (Data Segment).
Jika suatu register segmen berisi kode misalnya CS berisi 348A, maka CS dianggap memiliki alamat awal 348A0. BIU secara otomatis akan menambahkan angka 0 di belakang isi segmen. Setiap segmen menempati 64 Kbyte memori dan dapat ditempatkan di mana saja di dalam ruang alamat 1 Mbyte.
Execution Unit (EU)
EU menerima kode-kode instruksi program dan data dari BIU mengeksekusi instruksi tersebut, dan menyimpan hasil pada register umum. Dengan melewatkan data kembali ke BIU, data dapat disimpan di sebuah lokasi memori atau ditulis ke peralatan output. Sebagai catatan, EU tidak mempunyai koneksi dengan bus-bus system, namun menerima dan mengeluarkan seluruh data melalui BIU. EU mengandung rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal. Dekoder pada EU menerjemahkan instruksi-instruksi yang telah diambil dari memori ke dalam urutan aksi. EU memiliki ALU 16-bit dan dapat melakukan penjumlahan, pengurangan, AND, OR, XOR, increment, decrement, complement atau shift bilangan biner.
  1. Execution Unit (EU) : Flag Register
8086 memiliki register bendera dengan panjang 16-bit. Dari 16-bit itu terdapat 9 bendera yang aktif. Dari 9 bendera yang aktif, 6 bendera di antaranya (bendera kondisi) digunakan untuk menunjukkan kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF (Carry Flag), PF (Parity Flag), AF (Auxilary Carry Flag), ZF(Zero Flag), SF (Sign Flag), OF (Overflow Flag).Sedangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor. Bendera-bendera kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Keenam bendera kondisi diset dan direset oleh EU, berdasarkan hasil operasi-operasi aritmatika atau logika, sedangkan 3 bendera kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Bendera itu adalah TF (Trap Flag), IF (Interrupt Flag) dan DF (Direction Flag).
Bendera paritas (Parity Flag) akan diset (PF=1), jika pelaksanaan perintah oleh ALU menghasilkan jumlah bit 1 genap dan reset (PF=0) jika jumlah bit 1 ganjil. Bendera Zero akan diset (ZF=1), jika operasi ALU memberikan hasil 0. Bendera Sign akan diset (SF=1), jika pelaksanaan perintah oleh ALU menghasilkan bilangan negatif. Bendera OF (Overflow Flag) akan diset (OF=1), jika terjadi overflow yakni jumlah bit hasil operasi lebih besar dari lebar akumulator. Bendera TF (Trap Flag) digunakan pada mode operasi langkah tunggal (single step atau trace). Jika bendera ini diset, maka pelaksanaan instruksi akan dilakukan langkah demi langkah. Bendera IF digunakan untuk mengijinkan interupsi dari program. Bendera DF digunakan pada operasi string.
  • Execution Unit (EU): Register Serbaguna (General Purpose Registers)
8086 memiliki 8 buah register serbaguna yakni: AH, AL, BH, BL, CH, CL, DH, DL. Khusus untuk AL dinamakan pula AKUMULATOR. Jika register-register tersebut akan digunakan sebagai register 16-bit, maka pasangan AH dan AL membentuk AX, BH dan BL membentuk BX, CH dan CL membentuk CX serta DH dan DL membentuk DX.AX merupakan akumulator, sering digunakan untuk menyimpan hasil sementara setelah operasi aritmatika dan logika. BX sering digunakan sebagai register base untuk menyimpan address base data yang terletak di dalam memori dan juga address base tabel data. CXdapat digunakan sebagai register count. DX dapat digunakan sebagai register data.
8086 merupakan mikroprosesor 16-bit, artinya bagian ALU, register internalnya, dan sebagian besar instruksi-instruksinya dirancang untuk bekerja pada data 16-bit. 8086 memiliki bus data 16-bit, jadi ia dapat membaca data dari atau menyimpan data ke memori dan port-port yang ada dalam format 16-bit atau 8-bit . 8086 memiliki bus alamat 20-bit, sehingga ia dapat mengalamati 220 atau 1.048.576 lokasi memori atau 1 MB memori, sedangkan register PC atau IP (instruction pointer) yang dimilikinya panjangnya 16-bit. Hal inilahyang merupakan keunggulan dari 8086.
Prosesor lain yang sejenis dengan 8086 adalah 8088. 8088 memiliki ALU, register, dan set instruksi yang sama dengan 8086. 8088 juga memiliki bus alamat 20-bit, jadi ia juga bisa mengalamati memori 1 MB.
Perbedaan 8088 dan 8086, 8088 memiliki bus data 8-bit, sedangkan 8086 lebar bus datanya 16-bit. 8088 hanya dapat membaca dari atau menulisi data ke memori dan port-port dengan panjang 8-bit. Untuk membaca word 16-bit dari dua lokasi memori, 8088 selalu mengerjakan dengan dua operasi baca. 8088 pada awalnya digunakan sebagai CPU pada The Original IBM Personal Computer.
Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen, yakni BIU (bus interface unit) dan EU (execution unit). BIU bertugas mengirim kode-kode alamat keluar, mengambil instruksi dari memori, dan membaca data dari port dan memori. BIU menangani semua  trnasfer data dan alamat pada bus untuk membantu EU. EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan instruksi.

Related Posts: