Top Banner

of 30

Pengertian Mikroprosesor

Oct 14, 2015

Download

Documents

Zira Whiter
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Pengertian Mikroprosesor Ada 3 pengertian yang harus dibedakan yakni : Mikroprosesor Mikrokomputer MikrokontrolerMikroprosesor Mikroprosesor adalah suatu chip (IC=integrated circuits) yang didalamnya terkandung rangkaian ALU (arithmetic-logic unit), rangkaian CU (control unit), dan register-register. Mikroprosesor disebut juga dengan CPU (Central Processing Unit)

Mikroprosesor

MikrokomputerMikrokomputer adalah interkoneksi antara mikroprosesor (CPU) dengan memori utama (main memory) dan antarmuka input-output (I/O interface) yang dilakukan dengan menggunakan sistem interkoneksi bus.MemoryI/O InterfacePSistem Interkoneksi

Sistem Interkoneksi Bus Pada Mikroprosesor

Bus : Kumpulan konduktor, yang membawa sinyal-sinyal : alamat, data, dan kontrol.Sistem Interkoneksi Bus Bus alamat : Kumpulan konduktor, yang membawa kode-kode alamat dari mikroprosesor ke unit-unitnya, dan memiliki sifat aliran satu arah. Bus data : Kumpulan konduktor, yang membawa kode-kode instruksi atau data dari mikroprosesor ke unit-unitnya atau sebaliknya, dan memiliki sifat aliran dua arah. Bus kontrol : Kumpulan konduktor, yang membawa sinyal-sinyal kontrol.Sistem Mikrokomputer

Mikrokontroler Chip yang didalamnya terkandung sistem interkoneksi antara Mikroprosesor, RAM, ROM, I/O interface, dan beberapa peripheral. Mikrokontroler disebut juga On-chip-Peripheral.

Mikrokontroler

Jenis MikroprosesorJenis-jenis mikroprosesor digolongkan dalam beberapa kelompok berdasarkan kategori : Teknologi Bahan Lebar Bus Data Pabrik Pembuat Generasi InstruksiBerdasarkan Teknologi Bahan Mikroprosesor dan keluarga komponen sejenis seperti memori dan rangkaian I/O dibuat dengan berbagai teknologi bahan. Beberapa dari teknologi tersebut adalah : TTL (Transistor-transistor Logic) STTL (Schottky-clamped TTL) LSTTL ( Low Power STTL) ECL (Emitter Coupled Logic) IIL (Integrated-injection Logic) PMOS (P-Channel Metal Oxide Semiconductor) NMOS (N-Channel Metal Oxide Semiconductor) CMOS (Complementary MOS) HSCMOS (High Speed CMOS)

Berdasarkan Lebar Bus Data

Mikroprosesor Intel & Motorola

Intel 4004, 1971 Mikroprosesor ini dikeluarkan pada tahun 1971 oleh Intel Corporation, merupakan mikroprosesor pertama didunia. INTEL 4004 merupakan mikroprosesor 4-bit dengan kecepatan108 KHz yang terdiri dari 2300 transistor. Kecepatan pengiriman data mencapai 0,06 MIPS (Mega Instruction Per Second). Mikroprosesor ini hanya bisa menangani lokasi memori 4bit sebanyak 4096 lokasi. Instruksi yang dapat dilaksanakan hanya45 buah sehingga hanya dapat diaplikasikan terbatas seperti pada video games dan kontroler-kontroler skala kecil.

Intel 8008, Januari 1972 Merupakan mikroprosesor 8-bit yang mampu melaksanakan 48 instruksi dengan ukuran memori 16 Kbyte (16K x 8-bit). Adanya instruksi tambahan menyebabkan prosesor ini dapat diaplikasikan dalam sejumlah aplikasi yang lebih maju.Intel 8080, November 1973 Merupakan mikroprosesor modern 8-bit yang pertama dan diperkenalkan pada November 1973. Dapat melaksanakan instruksi 10 kali lebih cepat dari 8008.Intel 8085, 1977 Merupakan versi yang lebih baru dari 8080, diperkenalkan oleh Intel Corporation pada tahun 1977. Tidak ada kemajuan yang berarti dari versi ini, menangani jumlah memori yang sama, melaksanakan jumlah instruksi yang sama, kemajuannya hanya pada penambahan 1,3 Us kontroler instruksi yang merupakan komponen eksternal dari sistem berdasar 8080.Intel 8086/8088, 1978 Mikroprosesor 8086 dikeluarkan oleh INTEL Corporation pada tahun1978 dan setahun kemudian 8088. Keduanya merupakan mikroprosesor 16-bit yang melaksanakan instruksi dengan kecepatan sedikitnya400 ns per instruksi dan mampu menangani alamat memori 1 Mbyte. Teknologi prosesor ini merupakan landasan pengembangan bagi prosesor INTEL berikutnya.Intel 80286, 1983 Intel 80286 merupakan mikroprosesor 16-bit yang mampu mengalamatkan memori sebesar 16Mbyte dengan adanya penambahan instruksi. Mampu melakukan instruksi dengan kecepatan 250ns (4,0 MIPS) dengan versi asli 8 MHz. Terjadi perubahan pada eksekusi internak sehingga kecepatan eksekusinya menjadi 8x lebih besar dibandingkan 8086/8088Intel 80386, 1986 Mikroprosesor 32-bit pertama Intel yang mengandung data bus 32-bit dan alamat memori 32-bit. Intel 80386 mampu mengalamakan memori sebesar 4 Gbyte yang mampu menyimpan 1.000.000 halaman ketikan, spasi rangkap data ASCIIIntel 80486, 1989 Merupakan gabungan antara 80386 sebagai mikroprosesor, 80387 sebagai numeric coprosesor dan 8Kbyte cache memory system dalam satu paket terpadu. Intel 80486 pertama bekerja pada 50 MHz dengan kecepatan eksekusi instruksi sebesar 25 ns (50 MIPS).Bagaimana dengan prosesor sekarang?Berdasarkan Jenis Instruksi Mesin Berbasis Instruksi1-AlamatSalah satu mikroprosesor jenis ini adalah dari keluarga MOTOROLA.Contoh: Untuk mengisi akumulator dengan bilangan 5 heksadesimal, pada mesin MOTOROLA digunakan instruksi : LDAA#$5 Mesin Berbasis Instruksi 2-Alamat Keluarga INTEL termasuk jenis mesin ini.Contoh : MOVAL, 5

MIKROPROSESORINTEL 8086, GENERASI AWAL PENTIUMIntel 8086 Mikroprosesor 16-bit yang dapat mengeksekusi instruktesi dalam waktu 400 ns (2,5 MIPS) Mampu mengalokasikan memori sebesar 1Mbyte Memiliki jumlah instruksi yang kompleks sebanyak 20.000 sehingga dikatakan sebagai mikroprosesor CISCDiagram Arsitektur Intel 8086

Arsitektur Intel 8086 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 transfer data dan alamat pada bus untuk membantu EU. EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan instruksi.Execution Unit (EU) EU mengandung rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal. Dekoder pada EU menerjemahkan instruksi-instruksi yang telah diambil dari memori kedalam urutan aksi. EU memilki ALU 16-bit dan dapat melakukan penjumlahan, pengurangan, AND, OR, XOR, increment, decrement, complement, atau shift bilangan biner.MIKROPROSESORREGISTER-REGISTER MIKROPROSESORINTEL 8086Flag Register 8086 memiliki flag register dengan panjang16-bit. Dari 16-bit itu terdapat 9 bendera yang aktif. Dari 9 bendera yang aktif, 6 bendera diantaranya (bendera kondisi) digunakan untuk menunjukkan kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF (carry flag), PF (parity flag), AF (auxiliary carry flag), ZF (zero flag), SF (sign flag), danOF (overflow flag). Sedangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor.

Flag Register Flag-flag kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Keenam flag kondisi diset dan direset oleh EU, berdasarkan hasil operasi-operasi aritmetika atau logika, sedangkan 3 flag kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Flag itu adalah TF (trap flag), IF (interrupt flag), dan DF (direction flag).Diagram Flag Register

Flag Register Parity FlagBendera 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. Contoh: Output ALU=01100011, maka PF= 1 Output ALU=00101010, maka PF= 0

Flag Register Auxiliary Carry FlagBendera AF (auxiliary carry flag) akan diset (AF=1), jika dalam penjumlahan, bit ke 3 menghasilkan carry. Contoh:

Flag Register Contoh lain :

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.

Flag Register Overflow FlagBendera OF (overflow flag) akan set jika terjadi overflow yakni jumlah bit hasil operasi lebih besar dari lebar akumulator. Contoh:Jika suatu operasi menghasilkan bilangan dengan panjang 17-bit, sedangkan akumulator 8086 hanya16-bit, maka bendera OF akan set.Flag Register Bendera TF (trap flag) digunakan pada mode operasi langkah tunggal (single step atau trace). Jika bendera ini set, maka pelaksanaan instruksi akan dilakukan step demi step. Bendera IF (interupt flag) digunakan untuk mengijinkan interupsi dari program. Bendera DF (string direction flag) digunakan pada operasi string.General Purpose Register 8086 memiliki 8 buah register serba guna yakni: AH, AL, BH, BL, CH, CL, DH, DL. Khusus untuk AL juga disebut AKUMULATOR. Jika kedelapan register tersebut digunakan sebagai register 16-bit, maka pasangan AH dan AL membentuk AX, begitu juga yang lainnya.

General Purpose Register AX: merupakan akumulator, sering digunakan untuk menyimpan hasil sementara setelah operasi aritmetika dan logika. BX: sering digunakan sebagai register base untuk menyimpan address base data yang terletak didalam memori dan juga address base tabel data. CX: dapat digunakan sebagai register count. DX: dapat digunakan sebagai register data.Register Antrian Padasaat EU mendekode atau melaksanakan suatu instruksi, ia tidak memerlukan 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 disebut juga register antrian.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.Register Antrian Teknologi yang memungkinkan pengambilan instruksi berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining. Berikut ini adalah contoh perbedaan prosesor 8085 tanpa pipelining dan 8086 dengan pipelining dalam melakukan pengambilan instruksi, pelaksanaan instruksi, operasi read dan operasi write. Nampak bahwa pipelining memberikan tingkat penggunaan bus yang lebih efektif.

Register Antrian80858086

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 segmen16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat. 8086 memilki 4 buah register segmenyakni CS (code segment), SS (stack segment), ES (extra segment), dan DS (data segment).

Register Segmen Jika suatu register segmen berisi kode misalnya CS berisi 348A, maka CS dianggap memiliki alamat awal 348A0. BIU secara otomatis akan menambahkan angka 0 dibelakang isi segmen. Setiap segmen menempati 64K byte memori, dan dapat ditempatkan dimana saja didalam ruang alamat 1-M byte.Penempatan alamat segmen pada memori 8086

Register SegmenIP berisi instruksi berikutnya yang akan diambil. Alamat fisik yang dihasilkan BIU diperoleh dengan cara seperti disamping

Register Segmen Bagian alamat awal segmen yang tersimpan didalam register segmen dinamakan segment base, dalam contoh 348A adalah segment base yang tersimpan dalam CS. Isi IP merupakan offset atau jarak (displacement) antara alamat awal segmen dengan alamat fisik yang dihasilkan. Pada contoh, IP = 4214 berarti merupakan jarak antara 348A0 (alamat awal segmen) s.d. 38AB4 (alamat fisik).Register Segmen Format penulisan alamat fisik :segment base : offset formContoh : Jika CS berisi 348A dan IP = 4214, akan menghasilkan alamat fisik 38AB4. Alamat fisik tersebut dapat direpresentasikan/disajikan atau ditulis dalam bentuk :CS:IP atau 348A:4214 atau CS:IP=38AB4 Berapa alamat fisik yang direpresentasikan oleh 4 370:561E, dan 7A32:0028?Register Stack Pointer Stack adalah bagian memori yang digunakan untuk menyimpan alamat dan data selama subprogram dilaksanakan. Jika sub program selesai dilaksanakan, isi stack dikembalikan ke lokasi semula, yakni IP dan akumulator. SP merupakan register yang berisi offset 16-bit yang menghasilkan alamat fisik teratas dari memori stack. Untuk membangkitkan alamat fisik 20-bit, SP memerlukan bantuan register SS (stack segment).Register Stack Pointer Contoh: jika isi SS = 5000 dan isi SP = FFE0, maka akan menghasilkan alamat fisik : Alamat fisik tersebut dapat direpresentasikan dalam 5FFE0 (single number) atau dalam bentuk SS:SP yakni 5000:FFE0Register Index & Pointer Kecuali SP, EU pada 8086 juga memiliki register base pointer (BP)16-bit, dan juga register index SI (source index) 16-bit, dan DI(destination index) 16-bit. Walaupun BP, SI, dan DI dapat digunakan sebagai penyimpan sementara dari data seperti halnya pada register serbaguna, namun penggunaan utama mereka adalah menyediakan offset 16-bit dari data untuk suatu segmen base. Contoh: Alamat fisik data pada memori akan dibangkitkan dengan menambah isi SI dengan alamat segmen base yang direpresentasikan oleh bilangan16-bit dalam register DS.MikroprosesorEKSPLORASI PROSESOR 8086 DENGAN DEBUGDebug Overview Program DEBUG dapat digunakan untuk mengeksplorasi keluarga prosesor 8086 termasuk PENTIUM pada PC Program DEBUG telah disertakan setiap kali user melakukan instalasi WINDOWS Untuk menjalankan DEBUG, click Start-Run, kemudian ketik CMD dan click OK sehingga muncul pada layar prompt DOS. Dari prompt DOS ketikDEBUG:C:>DEBUG diikuti ENTER Prompt DEBUG ditandai dengan tanda minus dikuti kursor berkedip : -_ Terdapat 19 menu DEBUG, untuk melihatnya ketik -? diikuti ENTERDebug Overview Melihat isi register, ketik -R diikuti ENTER, maka akan muncul dilayar : Hal itu menandakan bahwa isi register AX=0000 atau AH=00 dan AL=00, BX=0000 atau BH=00 dan BL=00, CX=0000 atau CH=00 dan CL=00, DX=0000 atau DH=00 dan DL=00 Keadaan set dan reset register flag pada DEBUG dinyatakan dengan singkatan NV, UP, EI, PL, NZ, NA, PO, NCDebug Flag Status Bendera overflow:OV (Overflow atau OF=1=set)NV (No Overflow atau OF=0=reset) Bendera sign:NG (Negative atau SF=1=set)PL (Plus atau SF=0=reset) Bendera zero:ZR (Zero atau ZF=1=set)NZ (No Zero atau ZF=0=reset) Bendera auxiliary carry:NA (No Auxiliary carry atau AF=0=reset)AC (Auxiliary carry atau AF=1=set)Debug Flag Status Bendera paritas:PO (Parity Odd = paritas ganjil atau PF=0=reset)PE (Parity Even = paritas genap atau PF=1=set) Bendera Carry:NC (No Carry atau CF=0=reset)CY (carry atau CF=1=set) Contoh jika DEBUG menampilkan keadaan flag : NV UP EI PL NZ NA PO NC Artinya : hasil perhitungan ALU tidak overflow (NV), bernilai positif (PL), tidak bernilai 0 (NZ), tidak ada carry pada penjumlahan bit ke-3 (NA), berparitas ganjil(PO) dan tidak ada carry (NC)Debug Example Analyze Analisis :Misal kita menulis program assembly dengan perintah A dan menjalankannya baris demi baris dengan perintah T (trace) : Debug Example Analyze Perintah diatas yakni:MOV AL,3ADD AL,2ketika baris pertama dijalankan, isi AL=03 dan setelah baris kedua dijalankan isi AL menjadi AL=05 heksadesimal. Hal itu menunjukkan bahwa instruksi pertama MOV AL,3 menyebabkan akumulator AL terisi 3 heksadesimal, baris kedua menyebabkan isi AL ditambah dengan 2 heksadesimal sehingga menjadi 5 heksadesimal. Pada akhir pelaksanaan kedua perintah tersebut, DEBUG menghasilkan keadaan register flag sebagai berikut :NV UP EI PL NZ NA PE NCDebug Example Analyze Analisis Flag Register Hasil pemrosesesan TIDAK OVERFLOW (NV=NO OVERFLOW), mengapa?

Debug Example Analyze Hasil pemrosesan bernilai positif (PL=PLUS)

Perhatikan, bit paling kiri bernilai 0 sehingga me nunjukkan bilangan itu +. Hasil pemrosesan tidak nol (NZ=NO ZERO) Hasil pemrosesesan TIDAK ada auxiliary carry (NA=No Auxiliary Carry) : Perhatikan C4 diatas! C4 adalah Auxiliary Carry. Karena C4=0 berarti tidak ada auxiliary carry. Sebaliknya jikaC4=1, berarti ada auxiliary carry.Debug Example Analyze Hasil pemrosesan berparitas genap (PE=parity even):Perhatikan hasil AL=0000 0101, karena jumlah 1 nya genap maka hasil itu berparitas genap. Hasil pemrosesan tidak ada carry out (NC=NO Carry), karena Cout=0.Debug Memori Melihat isi memori pada alamat 100 : -D100 diikuti enterMisal jika kita menulis program assembly :MOV AL, 3ADD AL, 2 maka DEBUG akan mengubahnya menjadi kode-kode mesin dalam format heksadesimal menjadi :MOV AL,3 ADD AL, 2

Debug Memori Dengan menggunakan perintah D, akan ditampilkan :

Hal itu menunjukkan kode B0 disimpan dialamat 100, kode 03 dialamat 101, kode 04 dialamat 102, dan kode 02 dialamat 103.Debug Register Untuk melihat isi register sebelum perintah-perintah itu dijalankan gunakan perintah R. Jika kedua perintah tersebut dijalankan baris per baris dengan perintah T, maka: Terlihat mula-mula IP=100 (alamat awal program, dibuat otomatis oleh DEBUG), setelah baris1 dijalankan IP=102 (alamat instruksi ke-2). Jadi IP berisi alamat instruksi berikutnya yang akan dilaksanakan.MIKROPROSESORADDRESSING MODE INTEL 8086Addressing Mode Merupakan cara memberikan perintah transfer/pemindahan data dari lokasi satu ke lokasi lainnya. Jenis mode pengalamatan : Mode pengalamatan segera Mode pengalamatan register Mode pengalamatan langsung Mode pengalamatan tak langsung Base plus index addressing Register relative addressing Base relative plus index addressingMode Pengalamatan Segera Yaitu mode pengalamatan yang digunakan untuk mengisi suatu register dengan data Contoh : MOV AX, A1B2 MOV BL, 03 MOV BP, 1234Mode Pengalamatan Register MOV CS, DS tidak diijinkan karena segment to segment MOV BL, BX Tidak dijinkan karena berbeda ukuran (mixed size) Contoh : Susun perintah untuk mengisi register segmen DS dengan data 1234 heksadesimal! Jawab: MOV AX, 1234 immediate addressing MOV DS, AX register addressingMode Pengalamatan Langsung Yaitu mode pengalamatan untuk mentransfer data antar memori dan register Bentuk 1 Bentuk 2

Mode Pengalamatan Langsung Contoh bentuk 1 :Susun instruksi assembly untuk memindahkan isi alamat 10120 heksadesimal ke register AL, isi alamat 10150 heksadesimal ke register BL, dan isi alamat 10160 heksadesimal ke register CL! Anggap segment base 1000 tersimpan pada register DS!Jawab:MOV AX, 1000 immediate addressingMOV DS, AX register addressingMOV AL, [0120] direct addressingMOV BL, [0150] direct addressingMOV CL, [0160] direct addressingMode Pengalamatan Langsung Contoh bentuk 2 :Susun instruksi untuk mengisi alamat 10120 dengan data 5 heksadesimal! Anggap segment base yang digunakan adalah 1000 tersimpan dalam DS!Jawab:MOV AX,1000 immediate addressingMOV DS, AX register addressingMOV AL, 5 immediate addressingMOV [0120], AL direct addressingMode Pengalamatan Tak Langsung Merupakan mode pengalamatan untuk mentransfer DATA/byte/word antar register dan lokasi yang alamatnya ditunjukkan oleh isi suatu register.

Mode Pengalamatan Tak Langsung Contoh :Susunlah intruksi ke dalam bahasa assembly untuk memindahkan data A1B2 yang ada di register AX ke alamat fisik memori 20300 heksadesimal menggunakan mode pengalamatan register indirect, anggap segment yang digunakan adalah DS = 2000 dan alamat relatif yang menunjukkan alamat memory disimpan di register BX. Mode Pengalamatan Tak Langsung Jawab

Base Plus Index Addressing Yaitu mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh jumlah register base dan index. Bentuk 1 : MOV [BX + SI], AX Bentuk 2 : MOV AX, [BX+SI]Register Relative Addressing Yaitu mode pengalamatan untuk tranfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh isi suatu register dan jaraknya (displacement). Bentuk : MOV [BX + 4], AXRegister Relative Addressing Contoh :Susunlah intruksi dalam bahasa assembly untuk memindahkan data A1B2 dari akumulator AX ke alamat memori 20304 H dengan menggunakan register relative addressing, anggap segmen yang digunakan DS : 2000 dan dan displacement 4

Base Relative Plus Index Addressing Merupakan mode pengalamtan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh suatu register base dan register index ditambah displacementnya Bentuk : MOV AX, [BX + DI + 4]