Mikroprosesor Mikrokomputer Mikrokontroler Mikroprosesor Mikroprosesor adalah suatu chip (IC=integrated circuits) yang didalamnya terkandung rangkaian AL (arithmetic!logic unit)" rangkaian C (control unit)" dan register!register# Mikroprosesor disebut $uga dengan CP (Central Processing nit) Mikroprosesor Mikrokomputer Mikrokomputer adalah interkoneksi antara mikroprosesor (CP) dengan memori utama (main memory) dan antarmuka input!output (I%& inter'ace) yang dilakukan dengan menggunakan sistem interkoneksi bus# Memory I/O Interface P Sistem Interkoneksi (istem Interkoneksi )us Pada Mikroprosesor )us : *umpulan konduktor" yang memba+a sinyal!sinyal : alamat" data" dan kontrol# (istem Interkoneksi )us )us alamat : *umpulan konduktor" yang memba+a kode!kode alamat dari mikroprosesor ke unit!unitnya" dan memiliki si'at aliran satu arah# )us data : *umpulan konduktor" yang memba+a kode!kode instruksi atau data dari mikroprosesor ke unit!unitnya atau sebaliknya" dan memiliki si'at aliran dua arah# )us kontrol : *umpulan konduktor" yang memba+a sinyal!sinyal kontrol# (istem Mikrokomputer Mikrokontroler Chip yang didalamnya terkandung sistem interkoneksi antara Mikroprosesor" ,AM" ,&M" I%& inter'ace" dan beberapa peripheral# Mikrokontroler disebut $uga &n!chip!Peripheral# Mikrokontroler -enis Mikroprosesor -enis!$enis mikroprosesor digolongkan dalam beberapa kelompok berdasarkan kategori : .eknologi )ahan Lebar )us /ata Pabrik Pembuat 0enerasi Instruksi )erdasarkan .eknologi )ahan Mikroprosesor dan keluarga komponen se$enis seperti memori dan rangkaian I%& dibuat dengan berbagai teknologi bahan# )eberapa dari teknologi tersebut adalah : ..L (.ransistor!transistor Logic) (..L ((chottky!clamped ..L) L(..L ( Lo+ Po+er (..L) 1CL (1mitter Coupled Logic) IIL (Integrated!in$ection Logic) PM&( (P!Channel Metal &2ide (emiconductor) 3M&( (3!Channel Metal &2ide (emiconductor) CM&( (Complementary M&() 4(CM&( (4igh (peed CM&() )erdasarkan Lebar )us /ata Mikroprosesor Intel 5 Motorola Intel 6776" 89:8 Mikroprosesor ini dikeluarkan pada tahun 89:8 oleh Intel Corporation" merupakan mikroprosesor pertama didunia# I3.1L 6776 merupakan mikroprosesor 6!bit dengan kecepatan87; *4< yang terdiri dari =377 transistor# *ecepatan pengiriman data mencapai 7"7> MIP( (Mega Instruction Per (econd)# Mikroprosesor ini hanya bisa menangani lokasi memori 6bit sebanyak 679> lokasi# Instruksi yang dapat dilaksanakan hanya6? buah sehingga hanya dapat diaplikasikan terbatas seperti pada @ideo games dan kontroler!kontroler skala kecil# Intel ;77;" -anuari 89:= Merupakan mikroprosesor ;!bit yang mampu melaksanakan 6; instruksi dengan ukuran memori 8> *byte (8>* 2 ;!bit)# Adanya instruksi tambahan menyebabkan prosesor ini dapat diaplikasikan dalam se$umlah aplikasi yang lebih ma$u# Intel ;7;7" 3o@ember 89:3 Merupakan mikroprosesor modern ;!bit yang pertama dan diperkenalkan pada 3o@ember 89:3# /apat melaksanakan instruksi 87 kali lebih cepat dari ;77;# Intel ;7;?" 89:: Merupakan @ersi yang lebih baru dari ;7;7" diperkenalkan oleh Intel Corporation pada tahun 89::# .idak ada kema$uan yang berarti dari @ersi ini" menangani $umlah memori yang sama" melaksanakan $umlah instruksi yang sama" kema$uannya hanya pada penambahan 8"3 s kontroler instruksi yang merupakan komponen eksternal dari sistem berdasar ;7;7# Intel ;7;>%;7;;" 89:; Mikroprosesor ;7;> dikeluarkan oleh I3.1L Corporation pada tahun89:; dan setahun kemudian ;7;;# *eduanya merupakan mikroprosesor 8>!bit yang melaksanakan instruksi dengan kecepatan sedikitnya677 ns per instruksi dan mampu menangani alamat memori 8 Mbyte# .eknologi prosesor ini merupakan landasan pengembangan bagi prosesor I3.1L berikutnya# Intel ;7=;>" 89;3 Intel ;7=;> merupakan mikroprosesor 8>!bit yang mampu mengalamatkan memori sebesar 8>Mbyte dengan adanya penambahan instruksi# Mampu melakukan instruksi dengan kecepatan =?7ns (6"7 MIP() dengan @ersi asli ; M4<# .er$adi perubahan pada eksekusi internak sehingga kecepatan eksekusinya men$adi ;2 lebih besar dibandingkan ;7;>%;7;; Intel ;73;>" 89;> Mikroprosesor 3=!bit pertama Intel yang mengandung data bus 3=!bit dan alamat memori 3=!bit# Intel ;73;> mampu mengalamakan memori sebesar 6 0byte yang mampu menyimpan 8#777#777 halaman ketikan" spasi rangkap data A(CII Intel ;76;>" 89;9 Merupakan gabungan antara ;73;> sebagai mikroprosesor" ;73;: sebagai numeric coprosesor dan ;*byte cache memory system dalam satu paket terpadu# Intel ;76;> pertama beker$a pada ?7 M4< dengan kecepatan eksekusi instruksi sebesar =? ns (?7 MIP()# )agaimana dengan prosesor sekarangA )erdasarkan -enis Instruksi Mesin )erbasis Instruksi8!Alamat (alah satu mikroprosesor $enis ini adalah dari keluarga M&.&,&LA# Contoh: ntuk mengisi akumulator dengan bilangan ? heksadesimal" pada mesin M&.&,&LA digunakan instruksi : L/AA BC? Mesin )erbasis Instruksi =!Alamat *eluarga I3.1L termasuk $enis mesin ini# Contoh : M&D AL" ? MIKROPROSESOR INTEL 8086, GENERASI AWAL PENTIUM Intel ;7;> Mikroprosesor 8>!bit yang dapat mengeksekusi instruktesi dalam +aktu 677 ns (="? MIP() Mampu mengalokasikan memori sebesar 8Mbyte Memiliki $umlah instruksi yang kompleks sebanyak =7#777 sehingga dikatakan sebagai mikroprosesor CI(C /iagram Arsitektur Intel ;7;> Arsitektur Intel ;7;> Prosesor ;7;> terbagi men$adi = bagian 'ungsional yang independen" yakni )I(bus inter'ace unit) dan 1(e2ecution unit)# )I bertugas mengirim kode!kode alamat keluar" mengambil instruksi dari memori" dan membaca data dari port dan memori# )I menangani semua trans'er data dan alamat pada bus untuk membantu 1# 1 meminta )I untuk mengambilkan instruksi dan data dari memori" mendekode dan melaksanakan instruksi# 12ecution nit (1) 1 mengandung rangkaian!rangkaian kontrol yang ber'ungsi mengarahkan operasi!operasi internal# /ekoder pada 1 mener$emahkan instruksi!instruksi yang telah diambil dari memori kedalam urutan aksi# 1 memilki AL 8>!bit dan dapat melakukan pen$umlahan" pengurangan" A3/" &," E&," increment" decrement" complement" atau shi't bilangan biner# MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL 8086 Flag ,egister ;7;> memiliki 'lag register dengan pan$ang8>!bit# /ari 8>!bit itu terdapat 9 bendera yang akti'# /ari 9 bendera yang akti'" > bendera diantaranya (bendera kondisi) digunakan untuk menun$ukkan kondisi!kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF (carry flag, PF (!ar"#y flag, AF (a$%"l"ary carry flag, &F ('(r) flag, SF (*"g+ flag, ,a+OF ()-(rfl). flag/ (edangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor# Flag ,egister Flag!'lag kontrol ini berbeda dengan > bendera kondisi dalam hal cara set dan reset!nya# *eenam 'lag kondisi diset dan direset oleh 1" berdasarkan hasil operasi! operasi aritmetika atau logika" sedangkan 3 'lag kontrol diset dan direset oleh instruksi!instruksi khusus yang ada pada program# Flag itu adalah TF (#ra! flag, IF ("+#(rr$!# flag, ,a+ 0F (,"r(c#")+ flag/ /iagram Flag ,egister Flag ,egister Parity Flag )endera paritas (parity 'lag) akan diset (PF=8)" $ika pelaksanaan perintah oleh AL menghasilkan $umlah bit 8 genap dan reset (PF=7) $ika $umlah bit 8 gan$il# Contoh: &utput AL=78877788" maka PF= 8 &utput AL=77878787" maka PF= 7 Flag ,egister Au2iliary Carry Flag )endera AF (au2iliary carry 'lag) akan diset (AF=8)" $ika dalam pen$umlahan" bit ke 3 menghasilkan carry# Contoh: Flag ,egister Contoh lain : )endera <ero akan diset (GF=8)" $ika operasi AL memberikan hasil 7# )endera sign akan diset ((F=8)" $ika pelaksanaan perintah oleh AL menghasilkan bilangan negati'# Flag ,egister &@er'lo+ Flag )endera &F (o@er'lo+ 'lag) akan set $ika ter$adi o@er'lo+ yakni $umlah bit hasil operasi lebih besar dari lebar akumulator# Contoh: -ika suatu operasi menghasilkan bilangan dengan pan$ang 8:!bit" sedangkan akumulator ;7;> hanya8>!bit" maka bendera &F akan set# Flag ,egister )endera .F (trap 'lag) digunakan pada mode operasi langkah tunggal (single step atau trace)# -ika bendera ini set" maka pelaksanaan instruksi akan dilakukan step demi step# )endera IF (interupt 'lag) digunakan untuk mengi$inkan interupsi dari program# )endera /F (string direction 'lag) digunakan pada operasi string# 0eneral Purpose ,egister ;7;> memiliki ; buah register serba guna yakni: A1, AL, 21, 2L, C1, CL, 01, 0L/ *husus untuk AL $uga disebut AKUMULATOR/ -ika kedelapan register tersebut digunakan sebagai register 8>!bit" maka pasangan A4 dan AL membentuk AE" begitu $uga yang lainnya# 0eneral Purpose ,egister AE: merupakan akumulator" sering digunakan untuk menyimpan hasil sementara setelah operasi aritmetika dan logika# )E: sering digunakan sebagai register base untuk menyimpan address base data yang terletak didalam memori dan $uga address base tabel data# CE: dapat digunakan sebagai register count# /E: dapat digunakan sebagai register data# ,egister Antrian Padasaat 1 mendekode atau melaksanakan suatu instruksi" ia tidak memerlukan menggunakan bus sehingga dapat digunakan oleh )I untuk mengambil > byte instruksi sebagai instruksi berikutnya yang akan dilaksanakan# Instruksi!instruksi tersebut dinamakan pre'etched instruction dan oleh )I disimpan dalam register FIF& ('irst!in 'irst!out) yang disebut $uga register antrian# ,egister Antrian *etika 1 siap melaksanakan instruksi berikutnya" ia dengan mudah membaca instruksi!instruksi dari register antrian dalam )I# -adi" ketika 1 sedang melaksanakan suatu instruksi" bus dapat digunakan oleh )I untuk menulis dan membaca memori serta mengambil instruksi berikutnya# 8085 8086 ,egister Antrian .eknologi 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. ,egister Antrian ,egister (egmen ;7;> mampu mengalamati = =7 lokasi memori" sedangkan pan$ang register IP yang dimilikinya hanya 8>!bit# ntuk memperoleh =7!bit sinyal alamat" ;7;> menggunakan bantuan register segmen# 0abungan antara register segmen8>!bit dan IP 8>!bit akan menghasilkan =7!bit sinyal alamat# ;7;> memilki 6 buah register segmenyakni CS (c),( *(g3(+#, SS (*#ac4 *(g3(+#, ES ((%#ra *(g3(+#, ,a+ 0S (,a#a *(g3(+#/ ,egister (egmen -ika suatu register segmen berisi kode misalnya C( berisi 36;A" maka C( dianggap memiliki alamat a+al 36;A7# )I secara otomatis akan menambahkan angka 7 dibelakang isi segmen# (etiap segmen menempati >6* byte memori" dan dapat ditempatkan dimana sa$a didalam ruang alamat 8!M byte# Penempatan alamat segmen pada memori 8086 ,egister (egmen IP berisi instruksi berikutnya yang akan diambil. lamat fisik yang di!asilkan "I# ,egister (egmen )agian alamat a+al segmen yang tersimpan didalam register segmen dinamakan segment base" dalam contoh 36;A adalah segment base yang tersimpan dalam C(# Isi IP merupakan o''set atau $arak (displacement) antara alamat a+al segmen dengan alamat 'isik yang dihasilkan# Pada contoh" IP = 6=86 berarti merupakan $arak antara 36;A7 (alamat a+al segmen) s#d# 3;A)6 (alamat 'isik)# ,egister (egmen Format penulisan alamat 'isik : *(g3(+# 5a*( 6 )ff*(# f)r3 Contoh : -ika C( berisi 36;A dan IP = 6=86" akan menghasilkan alamat 'isik 3;A)6# Alamat 'isik tersebut dapat direpresentasikan%disa$ikan atau ditulis dalam bentuk : C(:IP atau 36;A:6=86 atau C(:IP=3;A)6 )erapa alamat 'isik yang direpresentasikan oleh 6 3:7:?>81" dan :A3=:77=;A ,egister (tack Pointer (tack adalah bagian memori yang digunakan untuk menyimpan alamat dan data selama subprogram dilaksanakan# -ika sub program selesai dilaksanakan" isi stack dikembalikan ke lokasi semula" yakni IP dan akumulator# (P merupakan register yang berisi o''set 8>!bit yang menghasilkan alamat 'isik teratas dari memori stack# ntuk membangkitkan alamat 'isik =7!bit" (P memerlukan bantuan register (( (stack segment)# ,egister (tack Pointer Contoh: $ika isi (( = ?777 dan isi (P = FF17" maka akan menghasilkan alamat 'isik : Alamat 'isik tersebut dapat direpresentasikan dalam ?FF17 (single number) atau dalam bentuk ((:(P yakni ?777:FF17 ,egister Inde2 5 Pointer *ecuali (P" 1 pada ;7;> $uga memiliki register base pointer ()P)8>!bit" dan $uga register inde2 (I (source inde2) 8>!bit" dan /I(destination inde2) 8>!bit# Halaupun )P" (I" dan /I dapat digunakan sebagai penyimpan sementara dari data seperti halnya pada register serbaguna" namun penggunaan utama mereka adalah menyediakan o''set 8>!bit dari data untuk suatu segmen base# Contoh: Alamat 'isik data pada memori akan dibangkitkan dengan menambah isi (I dengan alamat segmen base yang direpresentasikan oleh bilangan8>!bit dalam register /(# M"4r)!r)*(*)r EKSPLORASI PROSESOR 8086 0ENGAN 0E2UG /ebug I &@er@ie+ Program /1)0 dapat digunakan untuk mengeksplorasi keluarga prosesor ;7;> termasuk P13.IM pada PC Program /1)0 telah disertakan setiap kali user melakukan instalasi HI3/&H( ntuk men$alankan /1)0" click (tart!,un" kemudian ketik CM/ dan click &* sehingga muncul pada layar prompt /&(# /ari prompt /&( ketik/1)0: C670E2UG ,""4$#" ENTER Prompt /1)0 ditandai dengan tanda minus dikuti kursor berkedip : -8 .erdapat 89 menu /1)0" untuk melihatnya ketik !A diikuti 13.1, /ebug I &@er@ie+ Melihat isi register" ketik !, diikuti 13.1," maka akan muncul dilayar : 4al itu menandakan bah+a isi register AE=7777 atau A4=77 dan AL=77" )E=7777 atau )4=77 dan )L=77" CE=7777 atau C4=77 dan CL=77" /E=7777 atau /4=77 dan /L=77 *eadaan set dan reset register 'lag pada /1)0 dinyatakan dengan singkatan 3D" P" 1I" PL" 3G" 3A" P&" 3C /ebug I Flag (tatus )endera overflow: &D (&@er'lo+ atau &F=8=set) 3D (3o &@er'lo+ atau &F=7=reset) )endera sign: 30 (3egati@e atau (F=8=set) PL (Plus atau (F=7=reset) )endera zero: G, (Gero atau GF=8=set) 3G (3o Gero atau GF=7=reset) )endera auxiliary carry: 3A (3o Auxiliary carry atau AF=0=reset) AC (Auxiliary carry atau AF=1=set) /ebug I Flag (tatus )endera paritas: P& (Parity &dd = paritas gan$il atau PF=7=reset) P1 (Parity 1@en = paritas genap atau PF=8=set) )endera Carry: 3C (3o Carry atau CF=7=reset) CJ (carry atau CF=8=set) Contoh $ika /1)0 menampilkan keadaan 'lag : N9 UP EI PL N& NA PO NC Artinya : hasil perhitungan AL tidak o@er'lo+ (3D)" bernilai positi' (PL)" tidak bernilai 7 (3G)" tidak ada carry pada pen$umlahan bit ke!3 (3A)" berparitas gan$il(P&) dan tidak ada carry (3C) /ebug I 12ample Analy<e Analisis : Misal kita menulis program assembly dengan perintah A dan men$alankannya baris demi baris dengan perintah . (trace) : /ebug I 12ample Analy<e Perintah diatas yakni: M&D AL"3 A// AL"= ketika baris pertama di$alankan" isi AL=73 dan setelah baris kedua di$alankan isi AL men$adi AL=7? heksadesimal# 4al itu menun$ukkan bah+a instruksi pertama M&D AL"3 menyebabkan akumulator AL terisi 3 heksadesimal" baris kedua menyebabkan isi AL ditambah dengan = heksadesimal sehingga men$adi ? heksadesimal# Pada akhir pelaksanaan kedua perintah tersebut" /1)0 menghasilkan keadaan register 'lag sebagai berikut : N9 UP EI PL N& NA PE NC /ebug I 12ample Analy<e Analisis Flag ,egister 4asil pemrosesesan .I/A* &D1,FL&H (3D=3& &D1,FL&H)" mengapaA /ebug I 12ample Analy<e 4asil pemrosesan bernilai positi' (PL=PL() Perhatikan" bit paling kiri bernilai 7 sehingga me nun$ukkan bilangan itu K# 4asil pemrosesan tidak nol (3G=3& G1,&) 4asil pemrosesesan .I/A* ada au2iliary carry (3A=3o Au2iliary Carry) : Perhatikan C6 diatasL C6 adalah Au2iliary Carry# *arena C6=7 berarti tidak ada au2iliary carry# (ebaliknya $ikaC6=8" berarti ada au2iliary carry# /ebug I 12ample Analy<e 4asil pemrosesan berparitas genap (P1=parity e@en): Perhatikan hasil AL=7777 7878" karena $umlah M8N nya genap maka hasil itu berparitas genap# 4asil pemrosesan tidak ada carry out (3C=3& Carry)" karena Cout=7# /ebug I Memori Melihat isi memori pada alamat 877 : -0:00 ,""4$#" (+#(r Misal $ika kita menulis program assembly : M&D AL" 3 A// AL" = maka /1)0 akan mengubahnya men$adi kode!kode mesin dalam 'ormat heksadesimal men$adi : M&D AL"3 A// AL" = /ebug I Memori /engan menggunakan perintah /" akan ditampilkan : 4al itu menun$ukkan kode )7 disimpan dialamat 877" kode 73 dialamat 878" kode 76 dialamat 87=" dan kode 7= dialamat 873# /ebug I ,egister ntuk melihat isi register sebelum perintah!perintah itu di$alankan gunakan perintah ,# -ika kedua perintah tersebut di$alankan baris per baris dengan perintah ." maka: .erlihat mula!mula IP=877 (alamat a+al program" dibuat otomatis oleh /1)0)" setelah baris8 di$alankan IP=87= (alamat instruksi ke!=)# -adi IP berisi alamat instruksi berikutnya yang akan dilaksanakan# MIKROPROSESOR A00RESSING MO0E INTEL 8086 Addressing Mode Merupakan cara memberikan perintah trans'er%pemindahan data dari lokasi satu ke lokasi lainnya# -enis mode pengalamatan : Mode pengalamatan segera Mode pengalamatan register Mode pengalamatan langsung Mode pengalamatan tak langsung )ase plus inde2 addressing ,egister relati@e addressing )ase relati@e plus inde2 addressing Mode Pengalamatan (egera Jaitu mode pengalamatan yang digunakan untuk mengisi suatu register dengan data Contoh : M&D AE" A8)= M&D )L" 73 M&D )P" 8=36 Mode Pengalamatan ,egister M&D C(" /( tidak dii$inkan karena segment to segment M&D )L" )E .idak di$inkan karena berbeda ukuran (mi2ed si<e) Contoh : (usun perintah untuk mengisi register segmen /( dengan data 8=36 heksadesimalL -a+ab: M&D AE" 8=36 immediate addressing M&D /(" AE register addressing Mode Pengalamatan Langsung Jaitu mode pengalamatan untuk mentrans'er data antar memori dan register )entuk 8 )entuk = Mode Pengalamatan Langsung Contoh bentuk 8 : (usun instruksi assembly untuk memindahkan isi alamat 878=7 heksadesimal ke register AL" isi alamat 878?7 heksadesimal ke register )L" dan isi alamat 878>7 heksadesimal ke register CLL Anggap segment base 8777 tersimpan pada register /(L -a+ab: M&D AE" 8777 immediate addressing M&D /(" AE register addressing M&D AL" O78=7P direct addressing M&D )L" O78?7P direct addressing M&D CL" O78>7P direct addressing Mode Pengalamatan Langsung Contoh bentuk = : (usun instruksi untuk mengisi alamat 878=7 dengan data ? heksadesimalL Anggap segment base yang digunakan adalah 8777 tersimpan dalam /(L -a+ab: M&D AE"8777 immediate addressing M&D /(" AE register addressing M&D AL" ? immediate addressing M&D O78=7P" AL direct addressing Mode Pengalamatan .ak Langsung Merupakan mode pengalamatan untuk mentrans'er /A.A%byte%+ord antar register dan lokasi yang alamatnya ditun$ukkan oleh isi suatu register# Mode Pengalamatan .ak Langsung Contoh : (usunlah intruksi ke dalam bahasa assembly untuk memindahkan data A8)= yang ada di register AE ke alamat 'isik memori =7377 heksadesimal menggunakan mode pengalamatan register indirect" anggap segment yang digunakan adalah /( = =777 dan alamat relati' yang menun$ukkan alamat memory disimpan di register )E# Mode Pengalamatan .ak Langsung -a+ab )ase Plus Inde2 Addressing Jaitu mode pengalamatan yang digunakan untuk mentrans'er byte%+ord antar register dan memori yang alamatnya ditun$ukkan oleh $umlah register base dan inde2# )entuk 8 : M&D O)E K (IP" AE )entuk = : M&D AE" O)EK(IP ,egister ,elati@e Addressing Jaitu mode pengalamatan untuk tran'er byte%+ord antar register dan memori yang alamatnya ditun$ukkan oleh isi suatu register dan $araknya (displacement)# )entuk : M&D O)E K 6P" AE ,egister ,elati@e Addressing Contoh : (usunlah intruksi dalam bahasa assembly untuk memindahkan data A8)= dari akumulator AE ke alamat memori =7376 4 dengan menggunakan register relati@e addressing" anggap segmen yang digunakan /( : =777 dan dan displacement 6 )ase ,elati@e Plus Inde2 Addressing Merupakan mode pengalamtan yang digunakan untuk mentrans'er byte%+ord antar register dan memori yang alamatnya ditun$ukkan oleh suatu register base dan register inde2 ditambah displacementnya )entuk : M&D AE" O)E K /I K 6P